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

Вниз

Геометрия в делфи. !срочно!   Найти похожие ветки 

 
Лено ©   (2007-04-19 21:55) [0]

всем добрый вечер. кровь износу завтра с раннего утра надо сдать 4 программы.
1. Построить треугольник и его медианы по 3 точкам, которые запрашиваются в начале программы.
2. По запрашиваемым 4 точкам построить четырёхугольник и провести диагонали.
3. Построить по 3 запрашиваемым точкам треугольник и описанную вокруг него окружность.
4. По запрашиваемым точкам( не более 10) построить многоугольник и закрасить его.
помогите хоть с несколькими!
заранее спасибо!


 
homm ©   (2007-04-19 22:00) [1]

> кровь износу завтра с раннего утра надо сдать 4 программы.

Првый курс что-ли? :) Послушай мой мудрый совет: ложись спать, оно того не стоит, раньше нужно было делать.


 
Jeer ©   (2007-04-19 22:14) [2]


> мудрый совет: ложись спать,


Лучше с другом у которого тоже есть друг
И будет вам лучший из треугольников со временем превращающийся в многоугольник.:)


 
homm ©   (2007-04-19 22:20) [3]

> Лучше с другом у которого тоже есть друг

Ужас. Вот уж интересно что имелось ввиду.


 
Лено ©   (2007-04-20 07:59) [4]

homm да, первый:)


 
Плохиш ©   (2007-04-20 13:36) [5]

Странно, раньше для "незаконченного высшего" надо было учиться на 4м курсе...

PS. Предлагаю в анкету в список образования добавить пункт "Неначатое"


 
McSimm_ ©   (2007-04-20 13:40) [6]


> кровь износу завтра с раннего утра надо сдать

надо же :)


 
Fenik ©   (2007-04-20 17:08) [7]

3.

function getTriangleOutCircleCenter(Ax, Ay, Bx, By, Cx, Cy: Integer): TPoint;
var M, N, Dx, Dy: Double;
   A2, ABx, ABy, ACx, Z: Integer;
begin
 A2 := Sqr(Ax) + Sqr(Ay);
 M := A2 - Sqr(Bx) - Sqr(By);
 N := A2 - Sqr(Cx) - Sqr(Cy);
 ABx := Ax - Bx;
 ABy := Ay - By;
 ACx := Ax - Cx;
 Z := (ACx*ABy - ABx*(Ay - Cy)) shl 1;
 if (Z = 0) or (ABx = 0) then
   raise Exception.Create("Invalid triangle");
 Dy := (M*ACx - N*ABx) / Z;
 Dx := (M/2 - Dy*ABy) / ABx;
 Result := Point(Round(Dx), Round(Dy));
end;

Остальное тривиальное.


 
Fenik ©   (2007-04-20 17:47) [8]

Сорри. Функция несколько неправильная, если Ax = Bx;
Исправил:

function getTriangleOutCircleCenter(Ax, Ay, Bx, By, Cx, Cy: Integer): TPoint;
var M, N, Dx, Dy: Double;
   A2, ABx, ABy, ACx, Z, P: Integer;
begin
 A2 := Sqr(Ax) + Sqr(Ay);
 M := A2 - Sqr(Bx) - Sqr(By);
 N := A2 - Sqr(Cx) - Sqr(Cy);
 if Ax <> Bx then ABx := Ax - Bx
             else ABx := 1;
 ABy := Ay - By;
 ACx := Ax - Cx;
 Z := (ACx*ABy - ABx*(Ay - Cy)) shl 1;
 if Z <> 0 then Dy := (M*ACx - N*ABx) / Z
           else raise Exception.Create("Invalid triangle");
 Dx := (M/2 - Dy*ABy) / ABx;
 Result := Point(Round(Dx), Round(Dy));
end;


 
Олег_П   (2007-04-22 16:45) [9]

> Fenik © [8]

А не подскажешь, как мне нарисовать стрелочку( т.е. тот-же самый треугольник но без основания). Подробнее: есть линия, ее начальная координата и конечная, так вот эту стрелочку нужно нарисовать на "конце" этой линии
----------> - конец линии - вершина треугольника.
Туго у меня с геометрией(математикой), поэтому прошу, если можно то сразу кодом, иначе от формул мне толку мало(их ведь еще и понять надо что-ж они делают) :(
Что-нибудь типа:
procedure DrawArrow(Cn: TCanvas; const P1, P2: TPoint; Angl, ASize:Double);
begin
 Cn.MoveTo(P1.X, P1.Y); Cn.LineTo(P2.X, P2.Y);
 {И тут расчитать эту стрелку}
end;

где P1 - начальные координаты линииъ
   Р2 - конечные..
   Angl - угол стрелки
   ASize - Длина катетов.
Заранее Спасибо.
PS - Сорри за вмешательство. Не хотелось начинать отдельной темы.



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

Форум: "Media";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
2-1203493453
ilyaae
2008-02-20 10:44
2008.03.16
Получить номер копии печатаемого документа


15-1202207987
Berkut
2008-02-05 13:39
2008.03.16
Постановка инженерной задачи по "Численное дифференциирование"


6-1182176178
reLaxxx
2007-06-18 18:16
2008.03.16
Соединение с FTP через прокси? пробовал Инди, почему-то зависает


2-1203088715
aids
2008-02-15 18:18
2008.03.16
Потоки и поиск


2-1203496459
fluxion
2008-02-20 11:34
2008.03.16
SQL запрос.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский