Графика Delphi срочно!

  • Автор темы Lestat89
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

Lestat89

#1
Здравствуйте, помогите кто может нужно дорисовать концы стрелок в программе. то что получилось на первом рисунке а надо как на втором...сам уже спекся :) ..код прилагается.
 

Вложения

  • 1.1 КБ Просмотры: 9
  • 33.4 КБ Просмотры: 60
  • 3 КБ Просмотры: 55
09.11.2009
665
1
#2
Код:
procedure TForm38.Button1Click(Sender: TObject);
var
Angle:real;
p1,p2,p3,p4:TPoint;
i:integer;
begin
p1.x:=10;//откуда будет линия
p1.y:=20;
p2.x:=100;//куда
p2.y:=70;
with paintbox1 do
begin
Canvas.pen.color:=clred;
Canvas.MoveTo(p1.X,p1.Y);
Canvas.LineTo(p2.X,p2.Y);
end;
for i:=170 to 180 do  //170 - угол
with paintbox1 do
begin
Angle:=180*ArcTan2(p2.y-p1.y,p2.x-p1.x)/pi;
p3:=Point(p2.X+Round(15*cos(pi*(Angle+i)/180)),p2.y+Round(15*sin(pi*(Angle+i)/180)));
//15-длина стрелки
p4:=Point(p2.X+Round(15*cos(pi*(Angle-i)/180)),p2.y+Round(15*sin(pi*(Angle-i)/180)));
Canvas.MoveTo(p2.X,p2.Y);
Canvas.LineTo(p3.X,p3.y);
Canvas.MoveTo(p2.X,p2.Y);
Canvas.LineTo(p4.X,p4.y);
end;
end;
Результат:
124.jpg
 

Вложения

  • 15.1 КБ Просмотры: 184
L

Lestat89

#3
хм, а что есть ArcTan2 ?? мой делфи на него ругается
 
L

Lestat89

#4
извиняюсь протупил)))спасибо огромное помог!!!
 
Статус
Закрыто для дальнейших ответов.