криваяДля динамического поиска точки кривой

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

По сути, я использую функцию curveTo, чтобы нарисовать несколько линий для траекторий полета, но я не уверен, как это сделать, это динамически находить точки кривой, например, если вы посмотрите на сайт Ryan Air: http://www.ryanair.com/en/cheap-flight-destinations все линии изогнуты мило.

current_line.graphics.curveTo(curveX, curveY, map.mouseX, map.mouseY);

Мне нужно найти кривуюX и кривуюY

Если вам нужна дополнительная информация, оставьте комментарий, и я отвечу на любые ваши вопросы.

Заранее спасибо
Будет


person WillDonohoe    schedule 16.09.2010    source источник


Ответы (1)


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

Простым способом было бы просто использовать положение y начальной и конечной точек, чтобы найти точку, которая находится ровно посередине между ними по оси y, затем добавить к ней произвольное значение и использовать его в качестве контрольной точки в функция кривой. Вы можете рассчитать добавленное значение, получив процент от длины линии, чтобы каждая кривая выглядела одинаково изогнутой.

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

Изменить x4:

Кажется, кодирование прямо в поле ответа было плохой идеей: P Вот рабочий, правильный способ сделать это:

Версия CS4: http://dl.dropbox.com/u/3987391/AutoCurve.fla

Версия CS3: http://dl.dropbox.com/u/3987391/AutoCurve-CS3.fla

Дайте мне знать, если у вас все еще есть проблемы!

дебу

person debu    schedule 16.09.2010
comment
Привет Дебу, это именно то, что я ищу. Да, если это не слишком большая проблема, не могли бы вы привести пример того, что вы имеете в виду? У меня работает базовая версия, но она не идеальна. Я хотел бы посмотреть, как вы это сделаете. Большое спасибо - person WillDonohoe; 18.09.2010
comment
Я не знаю, уведомляет ли он вас об изменениях ответов, поэтому я добавляю комментарий, чтобы вы были уведомлены о том, что я добавил материал :) - person debu; 18.09.2010
comment
Привет Дебу, Спасибо за ваш ответ. Это сработало, но какие-либо точки, идущие справа от начальной точки, шли по прямой? - person WillDonohoe; 18.09.2010
comment
Привет снова Уилл; Я пропустил важное деление на 2 в одном из расчетов, а также я думаю, что проблема, о которой вы говорите, вероятно, возникает из-за того, что не используется абсолютное значение, поэтому попробуйте то, что я изменил в своем ответе выше. . - person debu; 19.09.2010
comment
Привет Дебу, спасибо за ваше время. Я попытался добавить деление на 2 и изменить их на абсолютные значения, но, похоже, это не имело никакого значения для точек справа от начальной точки и заставило кривые слева идти немного петля! - person WillDonohoe; 19.09.2010
comment
Это сделано и работает, загрузите этот FLA и посмотрите на код на первом кадре. :) - person debu; 19.09.2010
comment
хорошо, я знаю, что вы будете ненавидеть меня за это, но у вас есть версия CS3, которую вы могли бы загрузить? Извини друг! - person WillDonohoe; 19.09.2010
comment
Ха-ха! К счастью для вас, CS4 позволяет сохранять в формате CS3 — я отредактировал ответ с новой ссылкой :) - person debu; 19.09.2010
comment
Дебу ТЫ МУЖЧИНА! Большое спасибо за помощь, работает без нареканий. - person WillDonohoe; 19.09.2010