相关疑难解决方法(0)

如何判断一个点是否在一条线的右侧或左侧

我有一套积分.我想把它们分成两组.为此,我选择两个点(ab)并在它们之间绘制一条虚线.现在我想让一行中从这一行留下的所有点和另一组中从该行开始的那些点.

如何判断任何给定点z是左侧还是右侧?我试图计算azb之间的角度- 小于180的角度在右侧,大于180在左侧 - 但由于ArcCos的定义,计算的角度总是小于180°.是否有公式计算大于180°的角度(或选择右侧或左侧的任何其他公式)?

c# math geometry convex-hull

112
推荐指数
8
解决办法
11万
查看次数

检查两个线段是否发生碰撞(仅检查它们是否相交,而不是相交)

我需要一个快速算法来检查两条非无限线是否正在交叉.必须快速,因为它会在手机上运行很多.

该算法只需要返回yes或no,它不必确切地找出线交叉的位置!

我看过这里:你如何检测两个线段相交的位置? 但是这个线程是一个丛林,人们一直在说"这就是答案"但是其他两个人说这是错误的,因为这个和那个错误.

请帮我找到一个好的和有效的算法.

为了清楚起见:我需要一个你给出的函数
lineApointAx
lineApointAy
lineApointBx
lineApointBy
lineBpointAx
lineBpointAy
lineBpointBx
lineBpointBy
......并且返回true或false,具体取决于两条线是否交叉.

如果你回答(伪)代码,而不是公式,我将不胜感激.

algorithm math intersection

23
推荐指数
2
解决办法
3万
查看次数

给出中心绘制等边三角形

如果中心为cxcy 质心圆的半径,我如何绘制等边三角形?

如何找到一个点是否在三角形内?

在此输入图像描述

PS:我正在构建这个android,但这个问题与语言无关.

language-agnostic drawing shape

10
推荐指数
2
解决办法
1万
查看次数

角度不正确,计算错误的一面

我需要计算3点之间的角度.为此,我执行以下操作:

  1. 抓住3个点(之前,当前和下一个,它在一个循环内)
  2. 用毕达哥拉斯计算点之间的距离
  3. 使用计算角度 Math.acos

对于没有超过180度角度的形状,这似乎工作正常,但是如果形状有这样的角,则计算短边.这是一个说明我的意思(红色值是错误的):

用于说明计算出错的方法

这是进行计算的代码:

// Pythagoras for calculating distance between two points (2D)
pointDistance = function (p1x, p1y, p2x, p2y) {
    return Math.sqrt((p1x - p2x)*(p1x - p2x) + (p1y - p2y)*(p1y - p2y));
};

// Get the distance between the previous, current and next points
// vprev, vcur and vnext are objects that look like this:
//     { x:float, y:float, z:float }
lcn = pointDistance(vcur.x, vcur.z, vnext.x, vnext.z);
lnp = pointDistance(vnext.x, vnext.z, vprev.x, vprev.z);
lpc = pointDistance(vprev.x, …
Run Code Online (Sandbox Code Playgroud)

javascript math angle

7
推荐指数
1
解决办法
352
查看次数

计算一条线在哪一侧

我需要弄清楚如何计算一条线的哪一侧.我正在寻找一种非常快速和简单的碰撞算法,因为我只需要知道对象在哪一侧定义碰撞状态.

就像:

if(x > line.x)
    return EnumSide.LEFT;
Run Code Online (Sandbox Code Playgroud)

但该线需要对角线.有任何想法吗?

java line collision

3
推荐指数
1
解决办法
8524
查看次数