Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите с построением дуги (http://www.flasher.ru/forum/showthread.php?t=162064)

Dmitriy913 29.07.2011 20:54

Помогите с построением дуги
 
Здравствуйте!

Задача такая:
Нужно построить дугу. У меня есть координаты начальной точки, координаты конечной точки и центральный угол. Дуга должна идти от начальной точки к конечной, с заданным шагом. Помогите, как всё это дело описать, целый день ищу в сети, ничего не нашёл подходящего =( На форуме видел пример с рисованием дуги против часовой стрелки от точки до точки с шагом, но там ещё были координаты центра, а в моём случае они неизвестны.

Помогите пожалуйста, кто чем может!)

P.S. curveTo не предлагать =)

dimarik 29.07.2011 21:12

Зная координаты начальной и конечной точек и центральный угол можно определить координаты центра )

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

Dmitriy913 29.07.2011 21:35

А не подскажете, как? Я ума не приложу. хотелось бы вычислений поменьше при всём при этом делать.

dimarik 29.07.2011 21:58

В мое время это была геометрия пятого класса.
Точка A - первая, точка B - вторая. Построим отрезок AB. Перпендикуляр к его половине определяет прямую на которой будет располагаться центр окружности. Таких центров будет два -- по разные стороны отрезка. Осталось выразить радиус окружности через центральный угол. Зная радиус можно построить уравнение окружности. Построить графически дугу в семантике ActionScript становится тривиальной задачей.

Dmitriy913 29.07.2011 22:16

Цитата:

Сообщение от dimarik (Сообщение 1016027)
В мое время это была геометрия пятого класса.

Стыдно признать, но я всю геометрию 5 класса забыл, голова совершенно не варит после дня поисков... Можно хотя бы базовый пример в формулах, даже без кода? Попробую разобраться

Добавлено через 5 минут
Вроде вкуриваю... радиус выразится по теореме Пифагора:
Код AS3:

r^2 = a^2 + b^2

Уравнение окружности:
Код AS3:

(x - a)^2 + (y - b)^2 = R^2

А как дугу-то построить?
И кстати, мне ведь неизвестны координаты центра

Добавлено через 22 минуты
Нет, всё равно не понимаю, как мне найти координаты этих двух центров... Ну распишите кто-нибудь формулами хотя бы!)

dimarik 29.07.2011 22:47

Вам известен центральный угол. Выразим радиус как отношение половины отрезка AB к синусу половины центрального угла.

Dmitriy913 29.07.2011 22:58

Цитата:

Сообщение от dimarik (Сообщение 1016049)
...отношение половины отрезка AB к синусу половины центрального угла.

А корень извлекать не надо? И как дальше действовать, я всё равно не понимаю?...

P.S. нет, корень не надо, это из другой формулы

Vishapakahr 29.07.2011 23:22

если половину отрезка обозначить через 'a' a половину угла через alpha то r=a/Math.sin(alpha/2); h=a/Math.cos(alpha/2);

dimarik 29.07.2011 23:32

Не не. Тогда r = a / Math.sin(alpha), ведь "половину угла через alpha" )

Dmitriy913 29.07.2011 23:39

Ну а дальше-то как? Как уравнение окружности поможет в построении дуги, как всё выразить?


Часовой пояс GMT +4, время: 14:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.