永发信息网

python求两点直线坐标

答案:2  悬赏:50  手机版
解决时间 2021-03-10 22:37
  • 提问者网友:两耳就是菩提
  • 2021-03-10 10:04
知道平面范围为500x500

假设a点坐标为ax=10 ay=12 b点坐标为bx=110 by=130
求b点到a点直线的所有坐标值

(要求算法简单明了)
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-03-10 11:27
#判断斜率是否相等.
#即点(cx,cy)是不是在点(ax,ay)和点(bx,by)确定的直线上.
def issame(ax,ay,bx,by,cx,cy):
  kac=(ax-cx)*(cy-by)
  kbc=(cx-bx)*(ay-cy)   
  return kac==kbc

#获取点(ax,ay)和点(bx,by)确定的直线上所有的点的坐标
def getall(ax,ay,bx,by):
  res=[]
  for cx in range(500):
    for cy in range(500):
      if issame(ax,ay,bx,by,cx,cy):
        res.append((cx,cy))
  return res

#斜率为100的直线
print(getall(0,0,1,100))结果:
>>> 
[(0, 0), (1, 100), (2, 200), (3, 300), (4, 400)]
全部回答
  • 1楼网友:我住北渡口
  • 2021-03-10 12:38
#判断斜率是否相等. #即点(cx,cy)是不是在点(ax,ay)和点(bx,by)确定的直线上. def issame(ax,ay,bx,by,cx,cy): kac=(ax-cx)*(cy-by) kbc=(cx-bx)*(ay-cy) return kac==kbc #获取点(ax,ay)和点(bx,by)确定的直线上所有的点的坐标 def getall(ax,ay,bx,by): res=[] for cx in range(500): for cy in range(500): if issame(ax,ay,bx,by,cx,cy): res.append((cx,cy)) return res #斜率为100的直线 print(getall(0,0,1,100))

结果:

>>> [(0, 0), (1, 100), (2, 200), (3, 300), (4, 400)]
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯