求算法, 任意位置大小的两个圆过圆心直径确定的四边形四个顶点坐标

hanbin0514 2012-09-17 08:53:44
delphi 函数原型

function GetRect(x1,y1,r1, x2, y2, r2) : TPointList
x1,y1,r1 第一个圆的中心点坐标和半径
x2,y2,r2 第二个圆的中心点坐标和半径

返回值 唯一四边形的四个顶点坐标
返回值类型和方式随意,能有四个坐标即可


用C#语法也行
...全文
228 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinajhl1 2012-09-17
  • 打赏
  • 举报
回复
错了,应为Xa1 = x1 + R * cos (α - β)
chinajhl1 2012-09-17
  • 打赏
  • 举报
回复
∠A1O1O2 = Acos((R - r) / O1O2), 得到∠A1O1O2,假设为α
O1O2与水平线的夹角为β
则Xa1 = r1 + R * cos (α - β)
其余类推
chinajhl1 2012-09-17
  • 打赏
  • 举报
回复
如果是公切线,算法又不一样了
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
夹角和斜率有关系么
chinajhl1 2012-09-17
  • 打赏
  • 举报
回复
Xa = x1 + r1 * cos(PI/4 -α)
Ya = y1 + r1 * sin(PI/4 - α)
α: 两圆心连线与水平线夹角,a点为半径为r1的圆的一点,图片传不上去。
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
谢谢,我去找找
快溜 2012-09-17
  • 打赏
  • 举报
回复
几何都忘光了,搞图形编程的应该懂这算法,你在网上搜一下。
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
老大,还是你描述确切,我都不知道如何表达清楚, 能帮忙解决下么,急啊
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
对,就是这个意思
快溜 2012-09-17
  • 打赏
  • 举报
回复
你要求的是应该是两个圆的外公切线。
快溜 2012-09-17
  • 打赏
  • 举报
回复
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
呵呵,数学公式也行啊,问题是数学太烂了,没法求
yonglaixiazaide 2012-09-17
  • 打赏
  • 举报
回复
圆心连线,左垂直线,就可以了,说不是说。。怎么写代码。。。
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
你能看到我的头像么,那个就是图示,我不会传附件
快溜 2012-09-17
  • 打赏
  • 举报
回复
谁能把题目详解一遍,悟性不够啊
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
嗯,是的,所以只能有唯一一个,我数学不好,所以求高手指点算法
Chobitssp 2012-09-17
  • 打赏
  • 举报
回复
楼主意思是 2直径平行 且 垂直于圆心连接线?
hanbin0514 2012-09-17
  • 打赏
  • 举报
回复
嗯,我也描述不清,看我头像的示意图,就那唯一一个等腰梯形
真相重于对错 2012-09-17
  • 打赏
  • 举报
回复
唯一吗?

110,825

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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