Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

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

 
Лено ©   (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 вся ветка

Текущий архив: 2008.03.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1203279731
Jimmy
2008-02-17 23:22
2008.03.16
Печать на принтере


15-1202210278
data
2008-02-05 14:17
2008.03.16
Кто подскажет по доступу к сайту (хостингу)?


2-1202980335
TankMan
2008-02-14 12:12
2008.03.16
В какой компонент можно вставлять копированное с HTML странички


6-1182506570
Grega
2007-06-22 14:02
2008.03.16
Поиск адресов по номеру телефона


15-1202255039
guard_gg
2008-02-06 02:43
2008.03.16
Microsoft Yahoo