delphi 已知3点坐标,需要画一个圆,并计算它的半径!

zqdue 2011-04-30 11:08:23
delphi 已知3点坐标,需要画一个圆,并计算它的半径!
小弟数学很差,谢谢大家了!
...全文
180 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongss 2011-04-30
  • 打赏
  • 举报
回复
嘿嘿,结贴~~
zqdue 2011-04-30
  • 打赏
  • 举报
回复
谢谢!非常感谢!
hongss 2011-04-30
  • 打赏
  • 举报
回复
  r:= Sqrt(Sqr(Ox-Bx)+Sqr(Oy-By));  //圆半径

Canvas.Ellipse(Round(Ax)-2,Round(Ay)-2,Round(Ax)+2,Round(Ay)+2); //标识出A点位置
Canvas.Ellipse(Round(Bx)-2,Round(By)-2,Round(Bx)+2,Round(By)+2); //标识出B点位置
Canvas.Ellipse(Round(Cx)-2,Round(Cy)-2,Round(Cx)+2,Round(Cy)+2); //标识出C点位置

Canvas.Ellipse(Round(Ox-r),Round(Oy-r),Round(Ox+r),Round(Oy+r)); //画圆
hongss 2011-04-30
  • 打赏
  • 举报
回复
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
Ax,Ay,Bx,By,Cx,Cy: Single;
Ox,Oy: Single;
r: Single;
begin
Ax:= StrToFloatDef(InputBox('输入A点x坐标', 'Ax =', '78.3'),78.3);
Ay:= StrToFloatDef(InputBox('输入A点y坐标', 'Ay =', '78.3'),78.3);
Bx:= StrToFloatDef(InputBox('输入B点x坐标', 'Bx =', '10'), 10);
By:= StrToFloatDef(InputBox('输入B点y坐标', 'By =', '60'),60);
Cx:= StrToFloatDef(InputBox('输入C点x坐标', 'Cx =', '60'),60);
Cy:= StrToFloatDef(InputBox('输入C点y坐标', 'Cy =', '10'), 10);

Ox:= ((Cy-Ay)*(By*By-Ay*Ay+Bx*Bx-Ax*Ax)+(By-Ay)*(Ay*Ay-Cy*Cy+Ax*Ax-Cx*Cx))/(2*(Bx-Ax)*(Cy-Ay)-2*(Cx-Ax)*(By-Ay));
Oy:= ((Cx-Ax)*(Bx*Bx-Ax*Ax+By*By-Ay*Ay)+(Bx-Ax)*(Ax*Ax-Cx*Cx+Ay*Ay-Cy*Cy))/(2*(By-Ay)*(Cx-Ax)-2*(Cy-Ay)*(Bx-Ax));

r:= Sqrt(Sqr(Ox-Bx)+Sqr(Oy-By));
ShowMessage(FormatFloat('0.00',r));

Canvas.Ellipse(Round(Ax)-2,Round(Ay)-2,Round(Ax)+2,Round(Ay)+2);
Canvas.Ellipse(Round(Bx)-2,Round(By)-2,Round(Bx)+2,Round(By)+2);
Canvas.Ellipse(Round(Cx)-2,Round(Cy)-2,Round(Cx)+2,Round(Cy)+2);

Canvas.Ellipse(Round(Ox-r),Round(Oy-r),Round(Ox+r),Round(Oy+r));
end;
zqdue 2011-04-30
  • 打赏
  • 举报
回复
谢谢1楼,我是搜过本坛论还有百度,找不到啊!
Frank.WU 2011-04-30
  • 打赏
  • 举报
回复
记得2004年有同学问过这样的题目,然后,某大侠出来说,严打不经过思考就提问的。。。

现在我是否可以说:严打没经过搜索就来提问的?

1,185

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧