Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рисование дуги


Kosha80 ©   (2004-07-26 18:10:00) 

Требуется нарисовать дугу. Есть метод у TCanvas ARC.
В качестве параметров там передаются начало, конец и координаты центров эллипса.

А у меня даются Координаты начала, конца и радиус окружности.
Начало - (x1,y1)
Конец - (x2,y2)
Радиус - R

Голова уже опухла, может есть математики которые могут это разрешить?


PKT   (2004-07-28 02:25:00) [1]

Разве что через геометрию :)
1. Длина хорды S=SQRT((X1-X2)^2 + (Y1-Y2)^2)
2. Координаты центра хорды
   Xs=(X1+X2)/2
   Ys=(Y1+Y2)/2
3. Расст.от центра хорды до центра окружности
   D=SQRT(R^2-1/4*S^2)
4. Проекции D на оси
   Dx=D*sin(A)
   Dy=D*cos(A),
   где A, естественно из arctg(A)=(Y2-Y1)/(X2-X1)
5. Далее ясно, что условий задачи недостаточно, т.к.
   через две точки можно провести две окружности радиуса R
   (в лучших традициях Arc - из 2 в 1 против часовой стрелки).
   Поэтому плюс/минус
   Xr=Xs+(-)Dx
   Yr=Ys+(-)Dy


kosha_ubitij_gorem   (2004-07-27 02:29:00) [2]

Вообщето решение где-о то рядом, но формулы трехтажные не дают пробиться мне к долгожданному Х. Я его не могу ухватить руками, а если и хватаю, то он как сказочный змей распадается на две головы. Вообщем мистика мужики. Кто-то, где-то сказал, что книга рекордов Гинеса обещала 1 миллион за решения данного уравнения, а может и не обещала... Все равно, разденьте эти прекрасные переменные от корней и квадратов, найдите заветные X и Y.


PKT   (2004-07-27 02:13:00) [3]

to:Kagp   (27.07.04 00:24) [5]
<<решить не можем?
Тоже не смог ?


Kagp   (2004-07-27 00:24:00) [4]

Дожиллись граждане програмисты, систему из двух квадратных уравнение с двумя неизвестными решить не можем?


kosha80   (2004-07-26 20:06:00) [5]

Короче я понял что учеба в школе и универе мне ничего не дала :)
Не могу я это решить, трехэтажные формулы получаются...


Ega23   (2004-07-26 18:41:00) [6]

Решить уравнение тебе надо.
(X1-X)^2+(Y1-Y)^2=R^2
(X2-X)^2+(Y2-Y)^2=R^2

Решаем уравнение, получаем центр с координатами (X,Y)


Kosha80   (2004-07-26 18:37:00) [7]

Это понятно, только как найти эту точку. Нужны ее координаты.


Ega23   (2004-07-26 18:18:00) [8]

Окружность - частный вид эллипса, у которого оба фокуса находятся в одной точке.


Наверх

Титульная страница Поиск, карта сайта Написать письмо