Math 绘制以直线结束的圆弧的公式,Y是X、起点坡度、终点坡度、起点和圆弧半径的函数?

Math 绘制以直线结束的圆弧的公式,Y是X、起点坡度、终点坡度、起点和圆弧半径的函数?,math,geometry,formula,Math,Geometry,Formula,我在寻找一个数学公式,在一个绘制Y作为X函数的图形上,在一个指定的起始点之前,X的值,或者更好,X和Y坐标将有一个特定的斜率,然后它将绘制一个指定半径的弧,当它达到第二个指定的斜率时结束,从这一点开始,将是第二个斜率的另一条直线 我知道,因为Y是X的函数,所以斜率参数需要大于-90度,小于90度;我不担心在这些极端情况下或超出这些极端情况下的任何不当行为 事实上,我会更乐意使用一个公式,该公式采用起点和终点二维坐标,以及起点和终点斜率;需要时,中间有两条弧,中间有一条直线,将两条直线无缝连接起来

我在寻找一个数学公式,在一个绘制Y作为X函数的图形上,在一个指定的起始点之前,X的值,或者更好,X和Y坐标将有一个特定的斜率,然后它将绘制一个指定半径的弧,当它达到第二个指定的斜率时结束,从这一点开始,将是第二个斜率的另一条直线

我知道,因为Y是X的函数,所以斜率参数需要大于-90度,小于90度;我不担心在这些极端情况下或超出这些极端情况下的任何不当行为

事实上,我会更乐意使用一个公式,该公式采用起点和终点二维坐标,以及起点和终点斜率;需要时,中间有两条弧,中间有一条直线,将两条直线无缝连接起来。显然,终点的X需要大于起点的X;如果情况不是这样,我不在乎会发生什么。但我想这样一个公式可能比我第一次问的要难得多


ps:弧是指圆的一段;如中所示,如果图形的两个轴具有相同的比例,则圆弧对于相同半径的圆将具有正确的纵横比。

我这样看:

计算P0

作为A+t*dA和B-t*dB线的交点

计算P1圆心

它是平移线A->P0和B->P0的交点,与半径r垂直。有两种可能性,所以选择正确的一种,这样可以减少圆形零件的角度

计算P2,P3

只是线A-P0和B-P0之间的交点,以及从P1到它的垂直线

曲线


您是否认为三次贝塞尔曲线是两段之间的平滑连接?它们不能保证半径条件。这是更适合数学网站,但无论如何看看我的方法。。。
// some constants first
da=P2-A;
db=B-P3;
a2=atan2(P2.x-P1.x,P2.y-P1.y);
a3=atan2(P3.x-P1.x,P3.y-P1.y);
if (a2>a3) a3-=M_PI*2.0;
dang=a3-a2;

// now (x,y)=curve(t) ... where t = <0,3>
if (t<=1.0)
 {
 x=A.x+t*da.x;
 y=A.y+t*da.y;
 }
else if (t<=2.0)
 {
 t=a2+((t-1.0)*dang);
 x=P1.x+r*cos(t);
 y=P1.y+r*sin(t);
 }
else
 {
 t=t-2.0;
 x=P3.x+t*db.x;
 y=P3.y+t*db.y;
 }