Canvas自定义画图,随机几个点,这几个点在哪个图上或图外,求算法

c02645 2018-01-09 05:34:58


如上图,三角形的三个点是[291,223,277,110,434,105]
多边形的点是[361,170,361,170,445,141,474,195,457,265,398,261,355,223]
现在有三个随机点,[342,149],[366,183],[334,196]
求三个点在哪个形状上,或不在形状上。
请问大神有什么计算公式,或算法
javascript和C#写都可以
...全文
340 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-01-09
  • 打赏
  • 举报
回复
判断 点是否在多边形中 是有现成的代码的
        bool PointInPolygon(float x, float y, PointF[] polygon)
        {
            int i;
            int j = polygon.Length - 1;
            bool oddNodes = false;

            for (i = 0; i < polygon.Length; i++)
            {
                if ((polygon[i].Y < y && polygon[j].Y >= y || polygon[j].Y < y && polygon[i].Y >= y)
                    && (polygon[i].X <= x || polygon[j].X <= x))
                {
                    if (polygon[i].X + (y - polygon[i].Y) / (polygon[j].Y - polygon[i].Y) * (polygon[j].X - polygon[i].X) < x)
                    {
                        oddNodes = !oddNodes;
                    }
                }
                j = i;
            }
            return oddNodes;
        }
无论是 javascript 还是 C#,其 path 对象都提供用相应的方法

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧