一个简单的圆和切线问题!!急~~~~~~~~~高分(100) 已知两个圆的原心坐标(X1,Y1) ,(X2,Y2) ,两圆心距离L ,两圆有2条外公切线,且两圆半径r1=r2, 求两圆上的切点,共4点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看清,给出的都是已知条件,x1,y1, x2,y2, L ,r1,r2 好像多了个已知条件:Lvar x1: integer = 100; y1: integer = 150; x2: integer = 250; y2: integer = 350; r1: integer = 75; r2: integer = 100;procedure TForm1.Button1Click(Sender: TObject);var w, h: integer; l: integer; p11, p12, p21, p22: TPoint;begin w:=abs(x1-x2); h:=abs(y1-y2); l:=Round(Sqrt(Sqr(x1-x2)+Sqr(y1-y2))); p11.X:=x1-r1*h div l; p11.Y:=y1+r1*w div l; p12.X:=x2-r2*h div l; p12.Y:=y2+r2*w div l; p21.X:=x1+r1*h div l; p21.Y:=y1-r1*w div l; p22.X:=x2+r2*h div l; p22.Y:=y2-r2*w div l; Canvas.Ellipse(x1+r1, y1+r1, x1-r1, y1-r1); Canvas.Ellipse(x2+r2, y2+r2, x2-r2, y2-r2); Canvas.MoveTo(p11.X, p11.Y); Canvas.LineTo(p12.X, p12.Y); Canvas.MoveTo(p21.X, p21.Y); Canvas.LineTo(p22.X, p22.Y);end;end. 上面的代码,我编译不了,我把它们的类型改成double就不行了[Error] searchUnit.pas(860): Operator not applicable to this operand type 说明一下,我用的是double型,错误就指向了p11.X:=x1-r1*h div l;后来就发现,div不支持double,有没有好的方法,搞定它。 自己写一个类似div的函数就可以了 搞一个div的函数?有没直接点的方法 三个RadioButton,一个Listbox怎么关联? 用 delphi 程序打包.class文件,生成安装文件 有关父窗体与子窗体,大侠帮忙 请求帮助 bde 的一个问题?? 急问题,在MID窗口中,我如何知道,某一个窗口是否已经关闭?在线等待 暂存依次搜索到的数据集d问题 在任务栏右下角如何隐藏qq图标???? 初学delphi有什么好书可选吗? Delphi2010程序编译成功,不能debug wwDBGrid与DBGrid的问题 串口通信中,如何等待接收端发送的校验数据过来?
x1: integer = 100;
y1: integer = 150;
x2: integer = 250;
y2: integer = 350;
r1: integer = 75;
r2: integer = 100;procedure TForm1.Button1Click(Sender: TObject);
var
w, h: integer;
l: integer;
p11, p12, p21, p22: TPoint;
begin
w:=abs(x1-x2);
h:=abs(y1-y2);
l:=Round(Sqrt(Sqr(x1-x2)+Sqr(y1-y2))); p11.X:=x1-r1*h div l;
p11.Y:=y1+r1*w div l;
p12.X:=x2-r2*h div l;
p12.Y:=y2+r2*w div l; p21.X:=x1+r1*h div l;
p21.Y:=y1-r1*w div l;
p22.X:=x2+r2*h div l;
p22.Y:=y2-r2*w div l; Canvas.Ellipse(x1+r1, y1+r1, x1-r1, y1-r1);
Canvas.Ellipse(x2+r2, y2+r2, x2-r2, y2-r2);
Canvas.MoveTo(p11.X, p11.Y);
Canvas.LineTo(p12.X, p12.Y);
Canvas.MoveTo(p21.X, p21.Y);
Canvas.LineTo(p22.X, p22.Y);
end;end.
[Error] searchUnit.pas(860): Operator not applicable to this operand type
后来就发现,div不支持double,有没有好的方法,搞定它。