社区
数据结构与算法
帖子详情
‘已知圆弧的两点及半径求圆心的座标’十万火急。解析几何问题
guangguang
2000-06-18 09:14:00
已知圆弧的两点(X1,Y1),(X2,Y2)及半径 R 求圆心的座标(XC,YC)’
最好请用参数式表示。
既:
1》当。。。。。。
2》XC=。。。
YC=。。。
用于转换一种CAD 文件
E-MAIN HJG8888@YEAH.NET
...全文
2269
7
打赏
收藏
‘已知圆弧的两点及半径求圆心的座标’十万火急。解析几何问题
已知圆弧的两点(X1,Y1),(X2,Y2)及半径 R 求圆心的座标(XC,YC)’ 最好请用参数式表示。 既: 1》当。。。。。。 2》XC=。。。 YC=。。。 用于转换一种CAD 文件 E-MAIN HJG8888@YEAH.NET
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
trivita
2000-07-10
打赏
举报
回复
我的算法可能比较耗计算量下(还可优化),如下(有特殊情况,比如x1=x2):
d=(1,2)两点间的距离;
e1=arctan((y1-y2)/(x1-x2));
e2=arccos(2*r/d);
e3=e1-e2;
x3=r*cos(e3)+x2; y3=-r*sin(e3)+y2
x4=x1+x2-x3; y4=y1+y2-y3;
ad
2000-07-06
打赏
举报
回复
guangguang是在解读dxf文件吗,这个问题我也没有很好解决,主要是计算太复杂,暂时没精力,下面是已实现的算法,但存在错误,有些因素未考虑,你再研究一下吧,解决后别忘给我一份代码。dzm_xy@163.net
//计算pline实体的弧段,bFlag表示是直接实体还是块中的实体(块有基点、旋转、伸缩)
void CadMap::_DrawPlineArc(double x1,double y1,double x2,double y2, double r, BOOL bFlag)
{
PNT center, base, axis;
double angs, ange, rot_ang; //angs:起始角; ange终止角
double x1sub2 = x1 - x2, y1sub2 = y1 - y2;
double x1add2 = x1 + x2, y1add2 = y1 + y2;
double xyv = (x1sub2 * x1add2 + y1sub2 * y1add2) / 2.0;
if(x1sub2 == 0.0){
ASSERT(y1sub2 != 0.0);
center.y = xyv / y1sub2; //in fact is (y1+y2)/2
double ysub1 = center.y - y1;
double ry = sqrt((r + ysub1) * (center.y - ysub1));
if(r * y1sub2 > 0.0)
center.x = x1 + ry;
else
center.x = x1 - ry;
}
else{
double d = xyv / x1sub2 - x1;
double e = y1sub2 / x1sub2;
double f = e * e + 1;
double g = e * d + y1;
double h = d * d + (y1 + r) * (y1 - r);
double a = g / f;
double a2 = a * a;
double hf = h/f;
double b = (a2 < hf) ? 0.0 : sqrt(a2 - hf);
if(r * x1sub2 > 0.0)
center.y = a - b;
else
center.y = a + b;
center.x = (xyv - y1sub2 * center.y) / x1sub2;
}
angs = atan2(y1 - center.y, x1 - center.x);
ange = atan2(y2 - center.y, x2 - center.x);
if(bFlag){
center.x = (center.x-m_ip.borgx)*m_ip.xscale;
center.y = (center.y-m_ip.borgy)*m_ip.yscale;
axis.x = r*m_ip.xscale;
axis.y = r*m_ip.yscale;
base.x = m_ip.bx;
base.y = m_ip.by;
rot_ang = m_ip.rotAng;
}
else{
axis.x = r;
axis.y = r;
base.x = 0.0;
base.y = 0.0;
rot_ang = 0.0;
}
_ExtArc(¢er, &base, &axis, angs, ange, rot_ang);
}
//显示弧段
void CadMap::_ExtArc(PNT *_center,PNT *_base,PNT *_axis,double _angs,double _ange,double _rotAng)
{
double x1,y1,ranInc;//,x0,y0;
double r=(_axis->x+_axis->y)*m_dScale/2.0;
BOOL firstVert=TRUE;
double pi_360=PI/360.0;
if(r<10.0)
ranInc=pi_360*10;
else if(r<20)
ranInc=pi_360*8;
else if(r<40)
ranInc=pi_360*6;
else if(r<80)
ranInc=pi_360*4;
else if(r<160)
ranInc=pi_360*2;
else
ranInc=pi_360;
if(_angs>_ange) _ange+=2*PI;
r=_angs;
while(1){
x1=_axis->x*cos(r);
y1=_axis->y*sin(r);
x1+=_center->x;
y1+=_center->y;
_RotateCoord(&x1,&y1,_rotAng); //将x1,y1旋转_rotAng角度
x1+=_base->x;
y1+=_base->y;
MCtoDC(x1,y1); //CAD坐标转换为设备坐标,自写函数
if(firstVert){
m_pDC->MoveTo(trunc(x1),trunc(y1));
firstVert=FALSE;
//x0=x1,y0=y1;
}
else{
m_pDC->LineTo(trunc(x1),trunc(y1));
}
if(r==_ange) break;
r+=ranInc;
if(r>_ange) r=_ange;
}
}
guangguang
2000-06-20
打赏
举报
回复
因为我二元二次方程的解法已大部分还给高中数学老师了。正在恶补。因为时间紧迫所以请你多费心了。多谢。
guangguang
2000-06-19
打赏
举报
回复
Larky 你好:
原题是已知圆弧两端点(X1,Y1) (X2,Y2) 及弧高(弦的中心到弧中心的距离)与弦长一半的比 N ,求圆心坐标(XC,YC)。我前面所讲已知半径 R 已经是经过计算的了。能帮我把二元二次方程的解推导出来吗。多谢。多谢。(请问如何把这题的分数加高。现在只可以61分)而你说的第二种方法实现起来以有多种限制。且不太适合于计算机自动转换。
E-MAIN : HJG8888@yeah.net
Larky
2000-06-19
打赏
举报
回复
好吧我抽时间给你推一下!
不过我想不明白,为什么你自己不推呢?
zhouxx
2000-06-18
打赏
举报
回复
作两个以已知点为圆心,r为半径的圆,再取交点,但注意有两个交点
Larky
2000-06-18
打赏
举报
回复
我想最直接的办法就是解一个二元二次方程组,
只是推倒的时候要代一大堆的X1,X2...
麻烦了一点!不过一劳永逸!
要不然你也可以用旋转坐标的方法来算
你还可以先算出两点的中点,再算出中垂线的斜率,
然后换算成Sin 和 Cos,最后根据圆心到中点的距离和SinCos就可以算出坐标了
安装和配置 Windows Server 2022 更新服务
微软对于自己开发的产品支持方式,其中一种就是开发补丁程序,用于修复微软产品的
已知
问题
,比如功能缺陷、安全漏洞、逻辑错误等,这些缺陷一般来自于客户反馈、安全研究人员和团队并且微软会维护着一个在线服务,Microsoft 更新服务平台,用于分发补丁程序,方便用户和 IT 管理人员理解每一个补丁程序的作用,并且允许用户和 IT 管理人员轻松地获取到这些补丁程序,下载并且安装到相关的设备当中每一台 Windows 设备,包括 Windows 客户端和服务器系统,都集成了一个 Windows Update 服务,用于联机到 Microsoft 在线更新服务平台,定期查询适用于当前设备的补丁更新程序,并且下载和安装这些更新程序,以确保 Windows 设备能够安全、稳定和可靠的运行而 Windows 更新服务角色,是 Windows Server 2022 系统当中的一个可选角色,一方面它可以从 Microsoft 更新服务平台联机地同步最新的补丁描述和安装文件,另外的一方面将这些补丁分发给企业当中的设备,管理员可以借助于 Windows 更新服务,集中地审批和分发补丁,了解网络当中设备更新的状态,并且在需要的时候,也可以实现补丁的自动分发和状态报告在我们的这一个课程当中,我们将详细地为大家去 Windows 更新服务的安装和配置过程
已知
圆上任意
两点
求
圆心
和
半径
_圆曲线(
已知
两点
和
半径
)
座标
计算
for4850P圆曲线(
已知
两点
和
半径
)
座标
计算程序for4850P一、编制原理:因景观工程、房建和市政工程的曲线大多是圆曲线并且设计仅给两端点和
半径
而无曲线要素的前提下,利用圆曲线两端点和
半径
,基于
圆心
点
座标
数学精确解析
圆弧
上任意点
座标
。二、程序清单:Lbl0:CLS:{ABCGR}:A"X1":B"Y1":C"X2":G"Y2":RLbl1:J=0:I=POL(C-A,G-B):J<0=...
已知
两点
坐标和
半径
,
求
圆心
已知
圆上的
两点
坐标和
半径
,
求
圆心
。数学分析:这个题目,涉及到简单的数学
问题
,但是计算比较繁琐。假设
已知
圆上的
两点
坐标分别为N(X1,Y1)和M(X2,Y2),
半径
为R,
圆心
坐标为o(a,b),根据数学知识可得到:(x1-a)^2 + (y1-b)^2 = R^2----(1)式(x2-a)^2 + (y2-b)^2 = R^2----(2)式分别展开上述两个式子得到(x1)^2 - 2*x1*a ...
已知
平面上
两点
坐标及
半径
,
求
过
两点
圆弧
的
圆心
坐标
功能:
已知
平面
圆弧
上
两点
坐标及圆
半径
,计算
圆心
坐标.编程语言:JavaScript分析: 给定
圆弧
半径
,经过平面上
两点
的
圆弧
圆心
落在
两点
的中垂线上, 一般有两个.算法:1) 计算
两点
之间的中点坐标.2)计算连接
两点
的方向向量.3)将
两点
方向向量顺时针旋转90度,得到中垂线方向向量.4)单位化中垂线方向向量.5)计算中点与
圆心
的偏移距离.6)将中点沿中垂线方向移动偏移距离,既...
【笔记】
已知
圆上
两点
坐标和
半径
,
求
圆心
参考了一下这个博主的博客:https://blog.csdn.net/liumoude6/article/details/78114255?locationNum=2&fps=1
已知
两点
坐标(x1, y1), (x2, y2)和
半径
R,
求
圆心
坐标(x0, y0)。 编程验证算法: // 具体例子:
已知
(2,4)、(4,2),
半径
R=2,
求
圆心
#include "stdafx...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章