日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#实现 改进弧长法判断点在多边形里面

發布時間:2025/4/16 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#实现 改进弧长法判断点在多边形里面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、開發環境:

? ? VS2017,C# winform窗口程序

二、不同點

? ? ?和網上的介紹不同,我也 不清楚是為什么,我去實現別的博客的思路,始終是在象限相差為2的地方會判斷不正確,所以我自己思考了一種方法來進行這個地方的處理。

三、算法思路解釋

1、為了介紹方便,先規定符號:

? ?將需要判斷的點叫做:centerPoint

? ?多邊形的頂點序列是:points[n]

? ?第i個點為:points[i]

? ?points[n]對centerPoint的相對位置,也就是將坐標原點放在centerPoints后,每個points[i]的位置變為relativePoints[i]

? ?同時最后一個點和第一個點相同:即points[n]=points[0]

2、介紹:

? ?1)、我們知道圓的弧長都是,如果centerPoints在一個多邊形里面,那么將多邊形按頂點順序映射到centerPoint的弧長必定等于,如果centerPoint在多邊形的外面,那么中心投影的弧長為0。(當然,這個弧長是規定了方向的,方向相反會抵消投影的弧長)

? 2)、于是就這樣進行編程:

? ? ? ? 從relativePoints[0]出發,

? ? ? ? 當relativePoints[i+1]比relativePoints[i]象限相同的時候,弧長保持不變

? ? ? ? 當relativePoints[i+1]比relativePoints[i]象限增加1的時候,弧長加上

? ? ? ? 當relativePoints[i+1]比relativePoints[i]象限減少1的時候,弧長減去

? ? ? ? 當relativePoints[i+1]比relativePoints[i]象限增加2或則減少2的時候,弧長增加或者減少,如何增減,第三部分細講;

? ?3)當所有頂點都遍歷完之后,如果總的弧長=或者,說明centerPoint在多邊形里面,總的弧長=0,說明centerPoint在多邊形外面。

三、在relativePoints[i+1]比relativePoints[i]的象限相差2詳解

? 1、思路:

? ? 對于p(x0,y0)判斷它在直線L:ax+by+c=0(a必須大于0)的左側還是右側,我們知道如果

? ? ? ? ax0+by0+c>0(a>0),點p在直線L的右側;

? ? ? ? ax0+by0+c=0? (a>0),點p在直線L上

? ? ? ? ax0+by0+c<0? (a>0),點p在直線L左側。

如下圖:

2、應用:

? ? ??

? ? ? 分為以下四種情況,

? ? ? 1)當relativePoints[i+1]=(x2,y2)在第一象限,relativePoints[i]=(x1,y1)在第三象限的時候:

? ? 那么直線為:? (y2-y1>0)

? ? 對于點屏幕上任意一點P(x0,y0):

? ? ?f>0:? ? ? ? 總弧長加上

? ? ?f=0:? ? ? ? ?P(x0,y0)在多邊形邊上

? ? ?f<0:? ? ? ? ?總弧長減去

?

? ? ? 2)當relativePoints[i+1]=(x2,y2)在第三象限,relativePoints[i]=(x1,y1)在第一象限的時候:

? ? 那么直線為:(y1-y2>0)

? ? 對于點屏幕上任意一點P(x0,y0):

? ? ?f>0:? ? ? ? 總弧長減去

? ? ?f=0:? ? ? ? ?P(x0,y0)在多邊形邊上

? ? ?f<0:? ? ? ? ?總弧長加上

3)當relativePoints[i+1]=(x2,y2)在第二象限,relativePoints[i]=(x1,y1)在第四象限的時候:

? ? 那么直線為:? (y2-y1>0)

? ? 對于點屏幕上任意一點P(x0,y0):

? ? ?f>0:? ? ? ? 總弧長減去

? ? ?f=0:? ? ? ? ?P(x0,y0)在多邊形邊上

? ? ?f<0:? ? ? ? ?總弧長加上

? 4)當relativePoints[i+1]=(x2,y2)在第四象限,relativePoints[i]=(x1,y1)在第二象限的時候:

? ? 那么直線為:(y1-y2>0)

? ? 對于點屏幕上任意一點P(x0,y0):

? ? ?f>0:? ? ? ? 總弧長加上

? ? ?f=0:? ? ? ? ?P(x0,y0)在多邊形邊上

? ? ?f<0:? ? ? ? ?總弧長減去

?

等幾天再給出代碼

?

? ??

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的c#实现 改进弧长法判断点在多边形里面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎婷婷 | 免费av小说 | 性生交生活片1 | 成人国产精品免费观看视频 | 鲁鲁久久 | 日韩大片在线观看 | 中文字幕亚洲精品在线观看 | 99色在线 | 亚洲欧美一二三区 | 久久αv| 97操操 | 日韩精品视频在线播放 | 四虎三级 | jizz毛片| 中文理论片 | 五级 黄 色 片 | 秋霞影院午夜丰满少妇在线视频 | 一区二区在线免费看 | 欧洲亚洲一区二区 | 91国产网站 | 97国产免费| 欧洲av无码放荡人妇网站 | 日韩一区二区三区视频 | 欧美黄频 | 爱啪啪av| 成年人福利视频 | 九一在线观看免费高清视频 | 天天摸天天舔天天操 | 亚洲三级中文字幕 | 成人av在线一区二区 | 97精品国产97久久久久久免费 | 欧美色图亚洲自拍 | 日韩欧美亚洲国产精品字幕久久久 | 91精品人妻一区二区三区蜜桃欧美 | 黄色片在哪看 | www.久草.com | 国产网红在线观看 | 欧美一区影院 | 国产91丝袜在线播放九色 | 国产精品免费无码 | 亚洲一区二区三区不卡视频 | 亚洲综合在线成人 | 国产在线观看免费 | 久久色在线视频 | 一区二区三区在线观看 | 亚洲综合资源 | 亚洲激情视频一区 | 黑丝袜av | 99久久久国产 | 国产男女无套 | 麻豆精品免费观看 | 深夜福利网站 | 色吧综合 | 成人免费无遮挡无码黄漫视频 | 激情片| 久久亚洲精品小早川怜子 | 解开人妻的裙子猛烈进入 | 欧美性生活一区二区三区 | 久久这里只有精品9 | 日韩三级黄色片 | 青青草中文字幕 | 免费中文字幕日韩欧美 | 色天天干| 人成免费 | 加勒比色综合 | 国产视频你懂的 | 疯狂少妇 | 深夜影院深a | 四虎国产精品成人免费入口 | 炕上如狼似虎的呻吟声 | 内射国产内射夫妻免费频道 | 中文字幕在线观看日韩 | 亚洲综合成人亚洲 | 男女羞羞在线观看 | 关之琳三级全黄做爰在线观看 | 欧美亚洲| 91视频免费看 | 国产乱人视频 | 欧美少妇性生活 | 都市激情亚洲色图 | 欧美三日本三级少妇99 | 免费av成人 | 国产欧美一区二区三区在线看 | 日本在线www | 日本视频在线免费 | 久久久久亚洲av片无码下载蜜桃 | 狠狠躁18三区二区一区 | 毛片一区| 亚洲一区二区三区四区在线播放 | 亚洲国产精品va在线 | xxx久久| 成人一区二 | 国产成人无码精品久久久性色 | 亚洲欧美日韩精品永久在线 | 天天摸天天射 | 丁香综合网 | 高潮毛片 | 亚欧精品在线观看 | 精品香蕉99久久久久网站 |