sách gpt4 ai đã đi

language-agnostic - 在给定距离的线上寻找点

In lại 作者:行者123 更新时间:2023-12-03 13:33:17 27 4
mua khóa gpt4 Nike

我有一个问题,我知道一条线,我只知道它的斜率(m)和它的一个点A(x,y),我如何计算距该点的距离(d)的这条线上的点(实际上是其中的两个)一种 ???
我问这个问题是为了找到经过A(x,y)并有一段距离的线上的像素强度。在这种情况下,距离将是像素数量。

1 Câu trả lời

我建议将线转换为参数格式而不是点斜率。也就是说,该线的参数函数返回沿该线的一些参数t的值。您可以将线表示为引用点,并可以将 vector 表示通过该点的线的方向。这样,您只需从A点向前和向后移动d个单位即可获得其他点。

由于您的直线的斜率为m,因此其方向 vector 为<1,m>。因为它在x中每1个像素移动y中m个像素。您想将该方向 vector 归一化为单位长度,以便除以 vector 的大小。

大小=(1 ^ 2 + m ^ 2)^(1/2)

N = <1,m> /幅度= <1 / /幅度,m /幅度>

归一化方向 vector 为N。现在您差不多完成了。您只需要以参数化格式为线写方程式:

f(t)= A + t * N

这使用vector math。具体来说,是scalar vector multiplication(具有您的参数t和 vector N)和vector addition(具有A和t * N)。函数f的结果是直线上的一个点。您正在寻找的两个点是f(d)和f(-d)。用您选择的语言来实现。

与到目前为止的所有其他答案相比,使用此方法的优势在于,您可以轻松地扩展此方法以支持斜率为“无限”的直线。也就是说,一条类似x = 3的垂直线。您实际上并不需要斜率,只需要归一化方向 vector 即可。对于垂直线,它是<0,1>。这就是图形操作经常使用 vector 数学的原因,因为计算更简单明了,不易出现奇异性。
乍一看似乎有些复杂,但是一旦掌握了 vector 运算的功能,许多计算机图形任务就会变得容易得多。

关于language-agnostic - 在给定距离的线上寻找点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250419/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com