Кривые Безье на протяжении итераций вектора - PullRequest
1 голос
/ 02 апреля 2011

На данный момент у меня есть программа, которая демонстрирует гипотрохоиды и эпитрохоиды (также известный как Spirograph http://www.math.psu.edu/dlittle/java/parametricequations/spirograph/index.html).

Сначала я рисовал фигуру, используя только прямые линии, но понял, что неровные края были не очень хорошими. Затем я ввел кривую Bezier curveTo (), используя две итерации круговых вращений (и получившиеся точки x, y), одну для контрольной точки и одну для конечной точки (квадратичная кривая).

Теперь форма более изогнута, но она еще недостаточно изогнута, вместо гладкой формы у нее по-прежнему острые углы.

Кто-нибудь знает, как я могу визуализировать более изогнутую линию, используя метод curveTo () или какую-либо другую реализацию для получения постоянных кривых?

Я подумал, может быть, используя круговое касательное по зубчатому краю, а затем заменить текущую линию на ту часть круга, которая является касательной.

Как я могу реализовать что-то подобное?

РЕДАКТИРОВАТЬ: - Я должен добавить, что я использую поток анимации для визуализации линий.

На рисунке показано, что изогнуты только отрезки линии http://dl.dropbox.com/u/12814074/Screen%20shot%202011-04-02%20at%2007.31.56.png

1 Ответ

1 голос
/ 02 апреля 2011

Похоже, контрольные точки должны быть касательными к кривой.Если вы просто используете другую точку на кривой, это не так.Попробуйте установить контрольную точку, где касательные 2 точек встречаются:

enter image description here

PS Что вы подразумеваете под «использованием потока анимации»?

...