栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Android中查找路径中包含的点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Android中查找路径中包含的点

不久前,我遇到了同样的问题,经过一番搜索,我发现这是最好的解决方案。

Java的

Polygon
类具有
contains()
使事情变得非常简单的方法。不幸的
java.awt.Polygon
是,Android不支持该类。但是,我找到了写过同等课程的人。

我认为您无法从Android

Path
类中获得组成路径的各个要点,因此您将不得不以其他方式存储数据。

该类使用交叉编号算法来确定该点是否在给定的点列表内。

public class Polygon{    // Polygon coodinates.    private int[] polyY, polyX;    // Number of sides in the polygon.    private int polySides;        public Polygon( int[] px, int[] py, int ps )    {        polyX = px;        polyY = py;        polySides = ps;    }        public boolean contains( int x, int y )    {        boolean oddTransitions = false;        for( int i = 0, j = polySides -1; i < polySides; j = i++ )        { if( ( polyY[ i ] < y && polyY[ j ] >= y ) || ( polyY[ j ] < y && polyY[ i ] >= y ) ) {     if( polyX[ i ] + ( y - polyY[ i ] ) / ( polyY[ j ] - polyY[ i ] ) * ( polyX[ j ] - polyX[ i ] ) < x )     {         oddTransitions = !oddTransitions;    } }        }        return oddTransitions;    }  }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463613.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号