Овалы, эллипсы
- From
- Alex Astafiev (2:5000/228.16)
- To
- Alexei Duzhiy
- Date
- 2003-01-17T05:09:56Z
- Area
- RU.ALGORITHMS
А что ты слышал про распределенные вычисления folding@home, дорогой Alexei?
AD> Привет, All!
AD>
AD> Подскажите алгоритмы рисования сабжей, работающие быстрее тупого
AD> построения графиков их уравнений, позволяющие быстро найти на
AD> отрисованных сабжах точку, соответствующую заданному углу от оси.
проще всего рисовать subj след образом:
(псевдо-язык)
step = 2*PI/count;
for(i=0; i<2*PI; i+=step)
{
xx = radius*cos(i)
yy = radius*sin(i) //здесь можно cos(i + (PI/2) )
(x,y,1) = (xx,yy)*(2d_matrix)
plot(x,y)
}
здесь я не стал расписывать как получить гомогенную 2d_matrix матрицу
трансформации (поворота и растяжения в одном лице).
матрица эта вида
cosf sinf 0
-sinf cosf 0
0 0 1
соединив точки линиями, ты получишь хорошую аппроксимацию фигуры.
вычислив обратную матрицу un_transofrm (она будет существовать всегда)
и умножив ее на координаты тестируемой точки ты получишь исходные координаты
точки.
для count есть эмпирический выбор (приближенно)
count=sqrt(radius)
---
* Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)