【问题标题】:Calculating points on line with endpoints [duplicate]用端点计算点[重复]
【发布时间】:2013-02-07 14:48:35
【问题描述】:

使用 Python 2.7.3 和 Pygame 1.9.1。

我有一条线,我只知道端点 A 和 B 的坐标。
我想计算坐标 AB 是什么,给定 x 或 y 轴上的值。
例如

我知道了
(x,y) of A B&C
还有,
C 在 X 轴或 Y 轴上。
我的问题
如何计算点D的坐标(x,y)的位置

【问题讨论】:

  • 你知道如何建立直线方程吗?
  • @MatteoItalia 没有。但只是在谷歌上搜索过。所以现在,是的。
  • 你可以在wikipedia查看它

标签: python line pygame


【解决方案1】:

直线方程为:

y = mx + q

您想要的是y(x)x(y),并且您有两个端点(x1, y1)(x2, y2)。将它们代入直线方程并建立一个线性系统:

y1 = m·x1 + q
y2 = m·x2 + q

减法收益率:

y2-y1 = m(x2-x1) => m = (y2-y1)/(x2-x1)

而 q 显然是:

q = y2-m·x2

所以,现在您的y = f(x) 代表连接您的两点的直线。

显然,垂直线无法以这种形式表示 (m->+inf),如果您尝试在像素上跟踪一条线,为每个 x 评估此函数,您将得到垂直“洞”。
在这两种情况下,您都应该使用x = f(y) 形式(您可以按照这些相同的步骤获得,但从公式x = py + r 开始)。

话虽如此,您只需将x 放在上面确定的直线方程(y = f(x))中,就可以得到Dy 知道它的x;如果您知道y 并想确定x,则同样成立(反比关系x = f(y))。

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2022-01-22
    • 2020-05-26
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多