資源簡介
算法:判斷一個Point 是否在多邊形內部。給出點的坐標和多邊形的坐標即可
public bool PointInBox(Point point, Point[] points)
{....}

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Drawing;
using?System.Drawing.Drawing2D;
using?System.Text;
using?System.Windows.Forms;
????class?Class2
????{
?????
???????
????????//調用函數
????????public?bool?PointInBox(Point?point?Point[]?points)
????????{
????????????int?wn?=?0?j?=?0;?
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(i?==?points.Length?-?1)
????????????????????j?=?0;
????????????????else
????????????????????j?=?j?+?1;?
????????????????if?(points[i].Y?<=?point.Y)
????????????????{
????????????????????if?(points[j].Y?>?point.Y)
????????????????????{
????????????????????????if?(isLeft(points[i]?points[j]?point)?>?0)
????????????????????????{
????????????????????????????wn++;
????????????????????????}
????????????????????}
????????????????}
????????????????else
????????????????{
????????????????????if?(points[j].Y?<=?point.Y)
????????????????????{
????????????????????????if?(isLeft(points[i]?points[j]?point)?0)
????????????????????????{
????????????????????????????wn--;
????????????????????????}
????????????????????}
????????????????}
????????????}
????????????if?(wn?==?0)
????????????????return?false;
????????????else
????????????????return?true;
????????}
????????//計算
????????public?int?isLeft(Point?P0?Point?P1?Point?P2)
????????{
????????????int?abc?=?((P1.X?-?P0.X)?*?(P2.Y?-?P0.Y)?-?(P2.X?-?P0.X)?*?(P1.Y?-?P0.Y));
????????????return?abc;
????????}
????}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1549??2009-07-20?09:50??Class2.cs
-----------?---------??----------?-----??----
?????????????????1549????????????????????1
評論
共有 條評論