首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android平台上实现二维三角点测试

在Android平台上实现二维三角点测试
EN

Stack Overflow用户
提问于 2013-04-25 18:28:14
回答 1查看 770关注 0票数 0

我想确定2D点是否在使用纯java的三角中,在Android平台上。我保留了一个特殊的奖励,因为使用相同的表示为2D点,在安卓用于绘制三角形(Canvas.drawVertices())。

我已经为交集测试本身找到了答案,但它们并没有像我想的那样适应安卓。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-25 18:28:14

我变得(非常)不耐烦了,并且自己实现了这一点,基于这个问题的答案,我现在有两种测试方法。减少临时分配。

代码语言:javascript
复制
import android.graphics.PointF;
//...
private float sign(PointF p1, PointF p2, PointF p3) {
    return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
}

private boolean pointInTriangle(PointF pt, PointF v1, PointF v2, PointF v3) {
    boolean b1, b2, b3;
    b1 = sign(pt, v1, v2) < 0.0f;
    b2 = sign(pt, v2, v3) < 0.0f;
    b3 = sign(pt, v3, v1) < 0.0f;
    return ((b1 == b2) && (b2 == b3));
}

private boolean pointInTriangle(float x, float y, float[] v) {
    return pointInTriangle(new PointF(x, y), new PointF(v[0], v[1]), new PointF(v[2], v[3]), new PointF(v[4], v[5]));
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16222057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档