Рисовать кубические кривые Безье в Actionscript? - PullRequest
4 голосов
/ 15 июля 2010

Каков наилучший способ программного рисования кубических кривых Безье в AS3? Класс Graphics поддерживает только квадратичные кривые. :( Я хочу иметь возможность сделать что-то вроде:

var startPoint:Point = new Point(0, 0);
var endPoint:Point = new Point(5, 5);
var control1:Point = new Point(5, 0);
var control2:Point = new Point(0, 5);

var myBezier:Sprite = getBezier(startPoint, control1, control2, endPoint);

Для достижения цели я планирую иметь ~ 50 таких на сцене сразу.

Ответы [ 3 ]

4 голосов
/ 15 июля 2010

Примечание: Flash Player 11 и более поздних версий включает собственный метод рисования кубических кривых, cubicCurveTo () , который должен быть самым быстрым при нацеливании на FP11.

Буквально на прошлой неделе я написал класс для рисования кривых Безье произвольного порядка.

Код не оптимизирован, но отлично работает в моих тестах. Производительность является приемлемым событием для создания анимации (хотя я не думаю, что ее следует злоупотреблять, поскольку, как я уже сказал, она не оптимизирована; использовать их для квадратичных кривых, разумеется, не имеет смысла, поскольку игрок может сделать это изначально).

Код здесь, если вы хотите его использовать или посмотреть:

Класс BezierCurve

Пример кода

Я думаю, что с примером кода вы сможете понять, как его использовать без проблем (это довольно просто и несколько прокомментировано); но если вы столкнетесь с проблемами, спросите!

Не стесняйтесь использовать его по своему усмотрению.

1 голос
/ 15 июля 2010

Если в этот вызов API встроены квадратичные выражения, вам нужно будет достаточно хорошо понять Безье, чтобы написать собственную кубическую реализацию.

Как это .

0 голосов
/ 10 января 2011

Этот сайт перечисляет и объясняет различные способы аппроксимации кубических кривых Безье:
http://timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm

В самом низу он дает метод с заголовком Фиксированный подход MidPoint , который используетчетыре квадратичные кривые в качестве аппроксимации и, по-видимому, являются лучшими с точки зрения точности и производительности из всех методов.

...