![]() |
Помогите с построением дуги
Здравствуйте!
Задача такая: Нужно построить дугу. У меня есть координаты начальной точки, координаты конечной точки и центральный угол. Дуга должна идти от начальной точки к конечной, с заданным шагом. Помогите, как всё это дело описать, целый день ищу в сети, ничего не нашёл подходящего =( На форуме видел пример с рисованием дуги против часовой стрелки от точки до точки с шагом, но там ещё были координаты центра, а в моём случае они неизвестны. Помогите пожалуйста, кто чем может!) P.S. curveTo не предлагать =) |
Зная координаты начальной и конечной точек и центральный угол можно определить координаты центра )
Правда, там множество корней уравнения... Всего из двух или одного, если центральный угол кратен пи радиан. |
А не подскажете, как? Я ума не приложу. хотелось бы вычислений поменьше при всём при этом делать.
|
В мое время это была геометрия пятого класса.
Точка A - первая, точка B - вторая. Построим отрезок AB. Перпендикуляр к его половине определяет прямую на которой будет располагаться центр окружности. Таких центров будет два -- по разные стороны отрезка. Осталось выразить радиус окружности через центральный угол. Зная радиус можно построить уравнение окружности. Построить графически дугу в семантике ActionScript становится тривиальной задачей. |
Цитата:
Добавлено через 5 минут Вроде вкуриваю... радиус выразится по теореме Пифагора: Код AS3:
Код AS3:
И кстати, мне ведь неизвестны координаты центра Добавлено через 22 минуты Нет, всё равно не понимаю, как мне найти координаты этих двух центров... Ну распишите кто-нибудь формулами хотя бы!) |
Вам известен центральный угол. Выразим радиус как отношение половины отрезка AB к синусу половины центрального угла.
|
Цитата:
P.S. нет, корень не надо, это из другой формулы |
если половину отрезка обозначить через 'a' a половину угла через alpha то r=a/Math.sin(alpha/2); h=a/Math.cos(alpha/2);
|
Не не. Тогда r = a / Math.sin(alpha), ведь "половину угла через alpha" )
|
Ну а дальше-то как? Как уравнение окружности поможет в построении дуги, как всё выразить?
|
| Часовой пояс GMT +4, время: 14:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.