Python 如何在numpy中生成圆弧?

Python 如何在numpy中生成圆弧?,python,math,numpy,Python,Math,Numpy,如果我知道圆弧的中心(x,y,z)和直径,以及起点和终点,如何生成起点和终点之间的值 听起来您的“圆弧”是两个已知点之间曲线的圆形近似值。我是从你帖子中的“直径”(是半径的两倍)这个词猜出来的。为此,您需要(t)->(x,y)其中t来自0..2pi。给定一个中心、两个端点和一个半径,我们可以近似计算曲线的一部分,如下所示: from numpy import cos,sin,arccos import numpy as np def parametric_circle(t,xc,yc,R):

如果我知道圆弧的中心(x,y,z)和直径,以及起点和终点,如何生成起点和终点之间的值

听起来您的“圆弧”是两个已知点之间曲线的圆形近似值。我是从你帖子中的“直径”(是半径的两倍)这个词猜出来的。为此,您需要
(t)->(x,y)
其中
t
来自
0..2pi
。给定一个中心、两个端点和一个半径,我们可以近似计算曲线的一部分,如下所示:

from numpy import cos,sin,arccos
import numpy as np

def parametric_circle(t,xc,yc,R):
    x = xc + R*cos(t)
    y = yc + R*sin(t)
    return x,y

def inv_parametric_circle(x,xc,R):
    t = arccos((x-xc)/R)
    return t

N = 30
R = 3
xc = 1.0
yc = 3.0

start_point = (xc + R*cos(.3), yc + R*sin(.3))
end_point   = (xc + R*cos(2.2), yc + R*sin(2.2))


start_t = inv_parametric_circle(start_point[0], xc, R)
end_t   = inv_parametric_circle(end_point[0], xc, R)

arc_T = np.linspace(start_t, end_t, N)

from pylab import *
X,Y = parametric_circle(arc_T, xc, yc, R)
plot(X,Y)
scatter(X,Y)
scatter([xc],[yc],color='r',s=100)
axis('equal')
show()


此示例仅适用于2D,但很容易调整,因为曲线始终位于两点和中心之间的平面上。

您的意思是
球体
ar
?圆心是球体的原点或弧的中点?是弧的中点