Яйцо
От: Ярослав  
Дата: 17.01.12 11:35
Оценка:
Может кто-нибудь подсказать эффективный алгоритм рисования эллипса яйцеобразной формы?
То есть радиус на одном конце не равен радиусу на другом конце.

Может кто занимался отрисовкой яиц?
Re: Яйцо
От: VsevolodC Россия  
Дата: 17.01.12 11:43
Оценка:
Здравствуйте, Ярослав, Вы писали:

Я>Может кто-нибудь подсказать эффективный алгоритм рисования эллипса яйцеобразной формы?

Я>То есть радиус на одном конце не равен радиусу на другом конце.

Я>Может кто занимался отрисовкой яиц?


Космические овалы Кассини
про яйцо в конце страницы
Re: Яйцо
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 17.01.12 11:48
Оценка: 13 (3)
Здравствуйте, Ярослав, Вы писали:

Я>Может кто-нибудь подсказать эффективный алгоритм рисования эллипса яйцеобразной формы?

Я>То есть радиус на одном конце не равен радиусу на другом конце.

Я>Может кто занимался отрисовкой яиц?


http://www.biometrica.tomsk.ru/planirus.htm
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: Яйцо
От: goto Россия  
Дата: 18.01.12 10:11
Оценка:
Здравствуйте, Ярослав, Вы писали:

Я>Может кто-нибудь подсказать эффективный алгоритм рисования эллипса яйцеобразной формы?

Я>То есть радиус на одном конце не равен радиусу на другом конце.

Я>Может кто занимался отрисовкой яиц?


Занимался неоднократно в 3d пакетах .

Сплайн с 3-мя точками — хорошее приближение для многих случаев. Можно Безье, можно любой.


Рекламирую. Сплайн хорош тем, что про него в графике все известно, в частности, известно, как его эффективно рисовать. Думать не надо, только гуглить. Над другими кривыми, возможно, придется думать.
Re[2]: Яйцо
От: fin_81  
Дата: 18.01.12 12:02
Оценка:
Здравствуйте, goto, Вы писали:

G>Занимался неоднократно в 3d пакетах .


G>Сплайн с 3-мя точками — хорошее приближение для многих случаев. Можно Безье, можно любой.

G>

Тоже подумал про кривые Безье. А почему по трем точкам? Мне кажется, должно хватить двух для регулирования остроты/тупизны каждого конца яйца.

PS. Не занимался рисованием яиц.
Re[3]: Яйцо
От: goto Россия  
Дата: 18.01.12 12:27
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, goto, Вы писали:


G>>Занимался неоднократно в 3d пакетах .


G>>Сплайн с 3-мя точками — хорошее приближение для многих случаев. Можно Безье, можно любой.

G>>

_>Тоже подумал про кривые Безье. А почему по трем точкам? Мне кажется, должно хватить двух для регулирования остроты/тупизны каждого конца яйца.


Да, согласен, и 2-х точек может быть достаточно. 3 точки бывают удобнее для более детальной (удобной) параметризации, если требуется. Например, зафиксировать кривизну на концах и одновременно что-то рулить посередине.
Re[2]: Яйцо
От: Кодт Россия  
Дата: 18.01.12 16:05
Оценка:
Здравствуйте, goto, Вы писали:

G>Сплайн с 3-мя точками — хорошее приближение для многих случаев. Можно Безье, можно любой.

G>

Здесь в верхней точке излом. Чтобы его не было, надо обе вынесенные точки (слева и справа) поместить на одну линию. (На верхнюю сторону описывающего прямоугольника).

Кстати, можно и просто эллипсами. Режем прямоугольник вертикально, слева пол-эллипса, справа пол-эллипса уже другого
Хотя сплайнами красивее.
Перекуём баги на фичи!
Re[3]: Яйцо
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 18.01.12 16:29
Оценка:
Здравствуйте, fin_81, Вы писали:

_>А почему по трем точкам? Мне кажется, должно хватить двух для регулирования остроты/тупизны каждого конца яйца.


У яйца нет углов, а значит ось перпендикулярна поверхности в точках пересечения, у горизонтального яйца в обоих полюсах кривая идет вертикально, углы одинаковые. Так что три точки лучше.
Re[4]: Яйцо
От: fin_81  
Дата: 18.01.12 17:26
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, fin_81, Вы писали:


_>>А почему по трем точкам? Мне кажется, должно хватить двух для регулирования остроты/тупизны каждого конца яйца.


DM>У яйца нет углов, а значит ось перпендикулярна поверхности в точках пересечения, у горизонтального яйца в обоих полюсах кривая идет вертикально, углы одинаковые. Так что три точки лучше.


Так с двумя точками как раз и будет всю гладко и без углов за минимальное количество параметров. Для рисования яйца требуется всего три параметра: длина яйца, и длины рычагов точек начала и конца. Рычаги естественно перпендикулярны оси симметрии.

Re[3]: Яйцо
От: goto Россия  
Дата: 18.01.12 17:49
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, goto, Вы писали:


G>>Сплайн с 3-мя точками — хорошее приближение для многих случаев. Можно Безье, можно любой.

G>>

К>Здесь в верхней точке излом. Чтобы его не было, надо обе вынесенные точки (слева и справа) поместить на одну линию. (На верхнюю сторону описывающего прямоугольника).


Где излом? По краям касательные перпендикулярны оси симметрии яйца. В центральной т. производная не рвется. Может, просто на картинке возникает ощущение чего-то неровного?

К>Кстати, можно и просто эллипсами. Режем прямоугольник вертикально, слева пол-эллипса, справа пол-эллипса уже другого

К>Хотя сплайнами красивее.

Да главное, если надо рисовать, то сплайны есть в GDI, AGG, SVG и где угодно. А эллипсы надо сопрягать, в тт. сопряжения могут возникнуть "помарки" (пиксел туда-сюда в расчетах. Кто его знает, как рендерятся отдельные дуги эллипсов в интересующем диапазоне — проверять надо. А сплайны — все готовое, халява, гарантия успеха).
Re[4]: Яйцо
От: Кодт Россия  
Дата: 19.01.12 09:42
Оценка:
Здравствуйте, goto, Вы писали:

К>>Здесь в верхней точке излом. Чтобы его не было, надо обе вынесенные точки (слева и справа) поместить на одну линию. (На верхнюю сторону описывающего прямоугольника).


G>Где излом? По краям касательные перпендикулярны оси симметрии яйца. В центральной т. производная не рвется. Может, просто на картинке возникает ощущение чего-то неровного?


А, это я не заметил, что точка на кривой лежит чуть ниже рамки. Беру слова назад.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.