gpt4 book ai didi

algorithm - 计算给定侧的法线

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:39 27 4
gpt4 key购买 nike

给定的是一条线(线段),由两个向量 start(x,y)end(x,y) 定义。我还有一个点 p(x,y),它位于由线分隔的两个区域中的任何一个上(即它恰好在线上)。

如何计算朝向 p 所在一侧的线的法线?

最佳答案

让:

A = (a,b) and B = (c,d) define the line segment
P = (p,q) be the other point.

定义:

dot( (p,q), (r,s) ) == p*r + q*s

然后向量:

v = ( c-a, d-b)

定义沿线段的方向。它的垂线是:

u = (d-b, (-(c-a)) = (d-b,a-c)

这可以通过对 v 进行点积来看出.要从垂线得到法线,只需除以它的长度:

n = u /|u|, |u| = sqrt( dot(u,u))

我们现在只需要知道在哪里P谎言相对于正常。如果我们采取:

dir = dot( (P-A), n) ) 

然后 dir > 0表示 nP方向相同, 而 dir < 0意味着它在相反的方向。应该dir == 0 , 然后 P实际上在延长线上(不一定是线段本身)。

关于algorithm - 计算给定侧的法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28664927/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com