Math 如果给定起始点、结束点、随机点+,如何沿圆弧查找点;精确

Math 如果给定起始点、结束点、随机点+,如何沿圆弧查找点;精确,math,geometry,point,angle,Math,Geometry,Point,Angle,精度是我想要的向量点数,从0(弧的初始点)到精度-1 c++中的代码示例: int precision = 20; double pointInit[3] = {2,5,2}; double pointRandom[3] = {3,7,1}; double pointInit[3] = {0,-3,1}; std::vector<std::array<double,3>> pointArc; std::array<double, 3> currentPo

精度是我想要的向量点数,从0(弧的初始点)到精度-1

c++中的代码示例:

int precision = 20;
double pointInit[3] = {2,5,2};
double pointRandom[3] = {3,7,1};
double pointInit[3] = {0,-3,1};

std::vector<std::array<double,3>> pointArc;  
std::array<double, 3> currentPoint; 

// Fill the pointArc vector, from 0 (initial point) to precision -1 (ending point)
for (int i = 0 ; i < precision; i++)
{
    // Find the value of the current point
    // currentPoint[0] = ????;
    // currentPoint[1] = ????;
    // currentPoint[2] = ????;
    pointArc.push_back(currentPoint);
}
int精度=20;
双点init[3]={2,5,2};
双点随机[3]={3,7,1};
双点init[3]={0,-3,1};
向量点弧;
std::阵列电流点;
//填充点弧向量,从0(起点)到精度-1(终点)
对于(int i=0;i
编辑:我要查找的圆弧是圆弧

使用
atan2()
查找端点相对于中心的角度,将它们之间的角度对分为
precision-1
次,并转换极坐标(使用其中一个端点获得到中心的距离)到矩形。

使用
atan2()
查找端点相对于中心的角度,将它们之间的角度对分为
精度-1
次,并转换极坐标(使用其中一个端点获得距中心的距离)转换为矩形。

1)平移三个点,以便
P0
到达原点

P>2)考虑向量<代码> P0P1和<代码> P0P2 < /代码>,通过过程(很容易)< /P>形成标准正交基。 3) 在这个新的基础上,三个点的坐标是
(0,0,0)
(X1,0,0)
(X2,Y2,0)
,您已经将三维问题转化为二维问题。(实际上
X1=d(P0,P1)
X2
Y2
是从
P0P2
P0P1/X1
的点积和叉积中获得的。)

通过原点的二维圆的方程为

x² + y² = 2Xc.x + 2Yc.y
插入上述坐标,您就可以轻松地为
Xc
Yc
求解2x2系统

X1² = 2Xc.X1
X2² + Y2² = 2Xc.X2 + 2Yc.Y2
4) 圆的参数方程为

x = Xc + R cos(t)
y = Yc + R sin(t)
其中
R²=Xc²+Yc²

您可以找到与
tan(t)=(y-Yc)/(x-Xc)
端点对应的角度
t0
t2

5) 在角度
t0.(1-i/n)+t2.i/n
上插值,从参数方程计算简化坐标
x
y
,并应用2)和1)的逆变换。

1)平移三个点,以便
P0
到达原点

P>2)考虑向量<代码> P0P1和<代码> P0P2 < /代码>,通过过程(很容易)< /P>形成标准正交基。 3) 在这个新的基础上,三个点的坐标是
(0,0,0)
(X1,0,0)
(X2,Y2,0)
,您已经将三维问题转化为二维问题。(实际上
X1=d(P0,P1)
X2
Y2
是从
P0P2
P0P1/X1
的点积和叉积中获得的。)

通过原点的二维圆的方程为

x² + y² = 2Xc.x + 2Yc.y
插入上述坐标,您就可以轻松地为
Xc
Yc
求解2x2系统

X1² = 2Xc.X1
X2² + Y2² = 2Xc.X2 + 2Yc.Y2
4) 圆的参数方程为

x = Xc + R cos(t)
y = Yc + R sin(t)
其中
R²=Xc²+Yc²

您可以找到与
tan(t)=(y-Yc)/(x-Xc)
端点对应的角度
t0
t2


5) 在角度
t0.(1-i/n)+t2.i/n
上插值,从参数方程计算简化坐标
x
y
,并应用2)和1)的逆变换。

它是圆弧吗?是的,它是圆弧,我忘了提到它。我将在问题中添加编辑。它是圆弧吗?是的,它是圆弧,我忘了提到它。我将把编辑添加到question@asdfasdf:这似乎适用于二维点,二维点比三维点简单。例如,我找不到线条的法线,我忽略了这是三维的。在这种情况下,法线将是在一条线上相交的平面。中心将是该直线上的一个点。@asdfasdf:这似乎适用于二维点,它比三维点简单。例如,我找不到线条的法线,我忽略了这是三维的。在这种情况下,法线将是在一条线上相交的平面。中心将是该线上的一个点。