python已知直线上两个端点坐标,求任意等分点坐标

已知直线上两个端点坐标,求任意等分点坐标,用什么方法或模块能实现?

按比例算就可以了,有什么问题吗》?

大概写了下三等分的,没写过python
等分计算方式本身是很简单的,你看下就应该能明白

     ax = 5
    ay = 10
    bx = 50
    by = 20
    print ("第一个等分点:"),ax+(bx-ax)/3, ay+(by-ay)/3
    print ("第二个等分点:"),ax+(bx-ax)*2/3, ay+(by-ay)*2/3

用列表推导式,等下给你代码

'''
已知直线上两个端点坐标,求任意等分点坐标
'''
X1 = float(input('请输入第一个点坐标 x1:'))
Y1 = float(input('请输入第一个点坐标 y1:'))

X2 = float(input('请输入第二个点坐标 x2:'))
Y2 = float(input('请输入第二个点坐标 y2:'))

N = int(input('请输入等分份数 n:'))
'''
根据两点公式:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
'''

def f(x):
y = (Y1*(X2-X1)+(x-X1)*(Y2-Y1))/(X2 - X1)
return y

AX = X2 - X1
AX = AX/N
for i in range(1,N):
print('x%d = %5.3f'%(i,(X1+i*AX)),'y%d = %5.3f'%(i,f((X1+(i*AX)))))

        /// <summary>
        /// 将直线对等分
        /// </summary>
        /// <param name="Start">起点</param>
        /// <param name="End">终点</param>
        /// <param name="OutPoint">返回等分点坐标(包括起点和终点)</param>
        /// <param name="Count">除起点和终点外的等分点数量</param>
        public void IOR_CalcAverageDivideLine(Point Start, Point End, out List<Point> OutPoint, int Count = 5)
        {
            OutPoint = new List<Point>();
            Count += 1;
            for (int i = 0; i <= Count; i++)
            {
                OutPoint.Add(new Point(Start.X + i * (End.X - Start.X) / Count, Start.Y + i * (End.Y - Start.Y) / Count));
            }
        }