首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求高手帮助,根据角度画一条直线,追加100分解决方法

2012-02-23 
求高手帮助,根据角度画一条直线,追加100分现在以P(170,170),Q(250,170)为横坐标,输入一个角度,画出一条角

求高手帮助,根据角度画一条直线,追加100分
现在以P(170,170),Q(250,170)为横坐标,输入一个角度,画出一条角度所对应的直线, 哪位高手帮解决一下啊,以前的数学都忘的差不多了,整了一晩上没弄出来,小弟感激不尽啊!

[解决办法]

Delphi(Pascal) code
x0:=170;y0:=170;x1:=250;y1:=170;r:=40; if (r>90) and (r<270) then  x2:=-250;else  x2:=250;y2:=(x2-x0)/tan(r*pi/180); //这个公式的正负、除还是乘,需要实际比划才知道,因为我也忘了form.canvas.moveto(x0,y0);form.canvas.lineto(x1,y1);form.canvas.moveto(x0,y0);form.canvas.lineto(x2,y2);
[解决办法]
y2:=y0+ (x2-x0)/tan(r*pi/180); //这个公式的正负、除还是乘,需要实际比划才知道,因为我也忘了


[解决办法]
参考
Delphi(Pascal) code
procedure TForm1.DrawLineByAngle(angle: Extended);var  x0,y0,x1,y1,x2,y2:Integer;  A:Extended;begin  x0:=170;  y0:=170;  x1:=250;  y1:=170;  A := angle/180*pi;  x2 := x0+Trunc((250-170)*cos(A));  y2:=y0+Trunc((250-170)*sin(A));  //画原直线  Canvas.MoveTo(x0,y0);  Canvas.LineTo(x1,y1);  //画新直线  Canvas.MoveTo(x0,y0);  Canvas.LineTo(x2,y2);end;调用procedure TForm1.Button1Click(Sender: TObject);begin  DrawLineByAngle(90)end; 

热点排行