有谁知道已知3点坐标,怎么画一个圆???

helpforever 2002-11-21 02:57:37
如题
...全文
309 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
keenleung 2002-11-22
  • 打赏
  • 举报
回复
现在开始特别崇拜数学强人了
坐标转换就另外写一个函数吧,不然地话你会疯掉的,呵呵...
helpforever 2002-11-22
  • 打赏
  • 举报
回复
你们说的都有问题,还有坐标系要转换的,看花容易绣花难拉,
hechaobo2002 2002-11-21
  • 打赏
  • 举报
回复
double k12=(double)(startx[0]-startx[1])/(starty[1]-starty[0]);
double k23=(double)(startx[1]-startx[2])/(starty[2]-starty[1]);
//垂直平分线的斜率
double ax=(double)(startx[0]+startx[1])/2,ay=(double)(starty[0]+starty[1])/2;
double bx=(double)(startx[1]+startx[2])/2,by=(double)(starty[1]+starty[2])/2;//两个中点的坐标
double rx=(double)(by-ay-bx*k23+ax*k12)/(k12-k23);
double ry=(double)(k12*(rx-ax)+ay);//圆心坐标
double doublerad=(double)sqrt((rx-startx[0])*(rx-startx[0])+(ry-starty[0])*(ry-starty[0]));
r=int(doublerad);

上面已确定拉圆心,半径,后用正负法画圆就ok拉
chameleon 2002-11-21
  • 打赏
  • 举报
回复
先用数学解析法将圆心与半径用这三点的xy坐标表示出来,再编程
勉励前行 2002-11-21
  • 打赏
  • 举报
回复
3点在同一直线上
圓的半徑無限大,也就是要畫直線了
shymeng 2002-11-21
  • 打赏
  • 举报
回复
3点在同一直线上,无法做圆。。。。!!!!
cbc 2002-11-21
  • 打赏
  • 举报
回复
根据三个点的坐标,首先判断是否在一条直线上,如果是则可以以这条直线为直径画一个圆;如果不在一条直线上,则这三个点可以构成一个三角形,求出这个三角形的外心;然后再计算圆的外接矩形
ellipse
storejyjs 2002-11-21
  • 打赏
  • 举报
回复
搞错了,原来这是重心。我的平面几何都差不多还给老师了。但我想圆心还是可以解一个议程来做出来的。设为(X,Y),然后利用到各处顶点的距离相等这一性质,列出三个方程,再用线性代数解一下吧。
favorit 2002-11-21
  • 打赏
  • 举报
回复
X=(x1+x2+x3)/3,Y=(y1+y2+y3)/3 ?
好像不对吧......
storejyjs 2002-11-21
  • 打赏
  • 举报
回复
圆心的坐标为
X=(x1+x2+x3)/3
Y=(y1+y2+y3)/3
半径为
R=sqrt((X-x)*(X-x)+(Y-y)*(Y-y))
storejyjs 2002-11-21
  • 打赏
  • 举报
回复
一个一般的几何问题,先求出圆心,半径,再用ellipse来画不就可以了吗?
weibz0525 2002-11-21
  • 打赏
  • 举报
回复
Ellipse(int X1, int Y1, int X2, int Y2);
Ellipse(Windows::TRect Rect);
3点坐标都有, 要画一个圆的话,第四个点显而易见,就是一个正方形吗?
harboursong 2002-11-21
  • 打赏
  • 举报
回复
不是一元二次方程吗!!
应该不难吧
helpforever 2002-11-21
  • 打赏
  • 举报
回复
哎,看来又要解方程了,麻烦
dahuzizyd 2002-11-21
  • 打赏
  • 举报
回复
不好意思,看错了,答非所问。
dahuzizyd 2002-11-21
  • 打赏
  • 举报
回复
现成的函数可能没有,得自己写,两个参数确定圆心坐标,另一个为圆的半径。
耙子 2002-11-21
  • 打赏
  • 举报
回复
那就先算出来这个圆的公式在画。
这个不难吧?
KingOf007 2002-11-21
  • 打赏
  • 举报
回复
应该没有现成的吧,只好自己写一个了
KingOf007 2002-11-21
  • 打赏
  • 举报
回复
三个点如果是都在圆上的话,则有:
三个点到圆心的距离相等,圆心就是三个点连成的三条边垂直平分线的交点,叫什么来着记不清了,找三条垂直平分线的交点吧
helpforever 2002-11-21
  • 打赏
  • 举报
回复
我说的是有没有这样已知3点的画圆函数可以直接用,是不是只能用Ellipse函数
加载更多回复(1)

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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