Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

Рисование дуги   Найти похожие ветки 

 
Kosha80   (2004-07-26 18:10) [0]

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

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

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


 
Ega23 ©   (2004-07-26 18:18) [1]

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


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

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


 
Ega23 ©   (2004-07-26 18:41) [3]

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

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


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

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


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

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


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

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


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

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


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

Разве что через геометрию :)
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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
8-1085179855
Дмитрий
2004-05-22 02:50
2004.08.08
Скролинг графика


3-1089785424
SergS
2004-07-14 10:10
2004.08.08
Delphi 7.0 и SyBase


14-1090507516
Dima
2004-07-22 18:45
2004.08.08
Запуск консольных процессов


14-1090268166
Profi
2004-07-20 00:16
2004.08.08
Выбор провайдера


1-1090482565
Виталя
2004-07-22 11:49
2004.08.08
Как сделать Hint для StringGrid многострочным ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский