1
4
假设矩形是由(x1,y1,x2,y2)定义的,假设光线从(px,py)开始。 设Vx=cos(角) 设vy=sin(角度) 沿着射线移动一段距离t会使你到达点(px+t VX,PY+T VY)。 沿着射线旅行,
所以,有四种可能的解,t的正确值(在这四种中)是最小的。 积极的 一个。实际交叉点位于点(px+t VX,PY+T VY)。小心不要被零除! |
2
1
最简单的解决方案可能是只执行四射线线段交叉测试。我怀疑一个特殊用途的解决方案会更有效或更容易理解和维护。 |
3
0
让我们马上澄清一件事:在我看来,你担心二维的向量,你所有的点都在平面上。你感兴趣的矩形也是真的吗(四个角,都是90度角,两对相对的边有相同的长度)? 矩形的中心由四个角点的平均值给出: alt text http://www.equationsheet.com/latexrender/pictures/ccdca519c24bb6ab2b6164144645572a.gif alt text http://www.equationsheet.com/latexrender/pictures/84550340ace7dade26dc3294fef8e156.gif 这是向量的起点。 任何向量都由两个点定义,因此您只需要第二个点(例如,边的中点)来计算二维空间中的向量: alt text http://www.equationsheet.com/latexrender/pictures/7c680a2354f4a2a0d05d6c97ba949bc4.gif 从中心点和角度出发的问题是,它给了你无穷多的向量,而不仅仅是一个。(沿着直线有无数个终点,以给定的角度穿过你的中心点。)你必须从这个无限集中选出你感兴趣的精确终点。如果它恰好是在任意点与你的一条边相交的,你必须首先计算它。这是一个沿着向量线的找根问题。也许你可以用割线或者其他数值方法来计算。 |
4
0
下面的解决方案为通过提供的点并以指定角度穿过矩形边框的线构建公式。根据角度,我测试它是否与两个矩形边框相交。我总是以0到90度的角度来检查。为此,在象限q2和q4中的测试使用一条与q1和q4中的线垂直的线。
当角度=0时,直线向东。
|
5
0
你基本上是在求一个矩形的极性方程,它是
其中w和h是半宽半高,r是大于或等于sqrt(w^2+h^2)的任何数字。这假设矩形在原点,如果不是的话,你所要做的就是把中心的坐标加到结果中,通过(r COS(t),r 罪(t)。 当然,这种方法很糟糕,因为SEC和CSC都有奇点,但是您可以将它们限制在max(w,h)。 |
llewmills · 根据数字是否为整数过滤数值向量[重复] 2 年前 |
Rocket Procd · 在c中向向量插入元素++ 2 年前 |
Daniel · 为什么我不能手动定义模板参数? 2 年前 |
Swantewit · 将数组值推送到Rust中的向量 2 年前 |
Giffyguy · 如何限制在构造向量后调用'resize()'? 2 年前 |
clarkk · 当声明向量时,(1)是什么意思? 2 年前 |
Loui Augst · 仅在局部X轴上将游戏对象指向另一个对象 2 年前 |
F.A. · 从int向量中附加整数的字符串不会打印任何内容 2 年前 |