求高手帮助,根据角度画一条直线,追加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;