1.凸包、極點、極邊基礎概念

目錄

1.凸包

2.調色問題

3.極性(Extrem)

4.凸組合(Convex Combination)

?5.問題轉化(Strategy)?編輯

6.In-Triangle test

7.To-Left-test

8.極邊(Extream Edges)


1.凸包

凸包就是上面藍色皮筋圍出來的范圍

這些釘子可以轉換到坐標軸中,橫縱坐標表示顏色的比例

2.調色問題

上述問題可以進行一個抽象,抽象為一個color space

結論

  • 如果有1種顏料可以被2種顏料勾兌出來,它必然位于二者之間的那條連線上
  • 如果有1種顏料可以被3種顏料勾兌出來,它必然位于三角形內
  • 勾兌比例與距離成反比

3.極性(Extrem)

藍色的為極點

極點上存在一條直線,使得所有的點落在它的一側

4.凸組合(Convex Combination)

為什么最小值必須>=0 ?

因為這種顏色大不了不用,但也不可能是負的

?5.問題轉化(Strategy)

如果是極點那么久不可能在一個三角形的內部,所以采用排除法,剩下的就是極點

6.In-Triangle test

遍歷所有可能的三角線組合,排除非極點

低效做法

更加聰明的做法,如果一個點位于三條直線的left,那么它一定位于三角形內

7.To-Left-test

如何高效的判斷一個點是否是包含在一個三角形的內部是計算幾何里的一個基礎問題。

In Triangle Test問題也可以用來解決計算幾何里的一個基礎問題就是?凸包問題?。

問題描述

給出一個點s,判斷其是否在一個三角形(p, q, r)內部。

問題求解

判斷一個點是否在三角形內部等價于對于三條邊分別做To left test的結果一致。

那么現在的問題就是如何高效和精確的實現To left test。

只有s位于pq這條線段左側才會取正。

關于這個可以使用空間坐標系的海倫公式來求解。

? ? ? ? ? ? ??| p.x p.y 1 |

2 * S =? ?| q.x q.y 1 |

? ? ? ? ? ? ? | s.x s.y 1 |

并且這個公式是有向的,當三個點是逆時針排列的時候該行列式的返回結果是正數,當三個點是順時針排列的時候行列式的返回結果是負數

1

2

3

4

5

6

7

8

bool?to_left_test(int[] p,?int[] q,?int[] s) {

????return?area2(p, q, s) > 0;

}

int?area2(int[] p1,?int[] p2,?int[] p3) {

????return?p1[0] * p2[1] + p1[1] * p3[0] + p2[0] * p3[1] -

????????p2[1] * p3[0] - p1[1] * p2[0] - p1[0] * p3[1];

}  

To left test 幾乎貫穿了整個計算幾何,不僅是計算凸包的核心,也是很多其他計算幾何問題的關鍵算法。

例如:判斷兩條線段是否相交,只需要做4次to left test即可。?

8.極邊(Extream Edges)

極邊:所有的點落在同一側,就是極邊

算法實現

極邊的算法效率高于極點的算法效率

參考

In Triangle Test / To Left Test - hyserendipity - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76143.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《如何用 Function 實現動態配置驅動的處理器注冊機制?》

大家好呀!👋 今天我們來聊聊一個超實用的技術話題 - 如何用Java的Function接口實現動態配置驅動的處理器注冊機制。聽起來很高大上?別擔心,我會用最簡單的方式講清楚!😊 一、為什么要用Function實現處理器…

【最新版】蕓眾商城獨立版源碼 425+插件 全新后臺框架

一.系統介紹 蕓眾商城系統最新版 已經更新425全插件版,一套系統支持各種新零售、商城、模式,天天美麗鏈動商城。不要相信那些外面的舊版本。舊版本等于是廢品,無法小程序運營的,框架還是舊的! 蕓眾系統最新版 服務器可…

java 設計模式之單例模式

簡介 單例模式:一個類有且僅有一個實例,該類負責創建自己的對象,同時確保只有一個對象被創建。 特點:類構造器私有、持有自己實例、對外提供獲取實例的靜態方法。 單例模式的實現方式 餓漢式 類被加載時,就會實例…

Milvus 索引如何選擇

以下是幾種索引類型的特點及適用場景,可據此選擇: AUTOINDEX 特點:數據庫自動選擇合適索引類型,無需深入了解索引細節。適用場景:對索引知識了解有限,或不確定哪種索引適合當前數據和查詢需求&#xff0c…

CentOS 7 安裝教程

準備: 軟件:VMware Workstation 鏡像文件:CentOS-7-x86_64-bin-DVD1.iso (附:教程較為詳細,注釋較多,故將操作的選項進行了加粗字體顯示。) 1、文件–新建虛擬機–自定義 2、硬盤…

TAS啟動與卸載

3. 啟動TAS(Thin-Agent服務) TAS在安裝完成后通常會自動啟動,并在系統重啟時自啟。如需手動啟動,請按以下步驟操作:  3.1 在Windows上啟動TAS 1. 打開 Windows服務管理器: ? 按下 Win R&…

Redis面試——數據結構

一、SDS如何防止緩沖區溢出? Redis 的 String 類型通過 SDS(Simple Dynamic String)來防止緩沖區溢出,具體機制如下: Redis 的 String 類型底層采用 SDS 實現,即 Simple Dynamic StringSDS 底層維護的數據…

Doris的向量化執行如何支撐分布式架構和復雜查詢

Doris 的向量化執行能力與其 分布式架構 和 復雜查詢優化 深度結合,通過 批處理 列式計算 分布式調度 的協同設計,解決傳統分布式數據庫在復雜查詢場景下的性能瓶頸。以下是具體原理展開: 一、向量化如何適配分布式架構? Doris…

DataInputStream 終極解析與記憶指南

DataInputStream 終極解析與記憶指南 一、核心本質 DataInputStream 是 Java 提供的數據字節輸入流,繼承自 FilterInputStream,用于讀取基本數據類型和字符串的二進制數據。 作用:1.專門用來讀取使用DataOutputStream流寫入的文件 注意:讀取的順序要和寫入的順序一致(…

云轉型(cloud transformation)——不僅僅是簡單的基礎設施遷移

李升偉 編譯 云轉型不僅僅是遷移基礎設施,更是重塑企業運營、創新及價值交付的方式。它具有戰略性、持續性,并影響著人員、流程和平臺。 ?? 云轉型涉及以下內容: 🔄 應用現代化——從單體架構轉向微服務架構。 ?? 運營自動…

Java HTTP Client API詳解

Java HTTP Client API詳解 Java的HTTP客戶端API經歷了多次演進,從早期的HttpURLConnection到第三方庫如Apache HttpClient,再到Java 11引入的標準HttpClient。本文將全面解析Java中主要的HTTP客戶端API,包括特性對比、使用方法和最佳實踐。 …

如何深入理解引用監視器,安全標識以及訪問控制模型與資產安全之間的關系

一、核心概念總結 安全標識(策略決策的 “信息載體) 是主體(如用戶、進程)和客體(如文件、數據庫、設備)的安全屬性,用于標記其安全等級、權限、訪問能力或受保護級別,即用于標識其安全等級、權限范圍或約束…

京東3D空間視頻生成技術探索與應用

1. 背景 近年來,隨著社交媒體、流媒體平臺以及XR設備的快速發展,沉浸式3D空間視頻的需求迅猛增長,尤其是在短視頻、直播和電影領域,正在重新定義觀眾的觀看體驗。2023年,蘋果公司發布的空間視頻技術為這一趨勢注入了新…

驚爆!Cursor 限制多設備登錄,網友瘋狂吐槽,退訂潮洶涌來襲,直呼:沒理由再給它掏錢!

大家好,我是小程程。 吃瓜吃瓜,知名 AI 編程工具 Cursor 惹事了! ① 遭遇強制登出 前幾天有 Cursor 用戶發現,自己要是從多臺設備登錄,就會被強制下線。 比方說,你正在臺式電腦上干活,中途換到筆…

React JSX 語法深度解析與最佳實踐

本文系統梳理 JSX 語法的完整知識體系。通過原理剖析、代碼示例和開發警示&#xff0c;幫助開發者建立嚴謹的 JSX 使用認知。 一、JSX 本質解析 1.1 編譯機制 JSX 通過 Babel 轉換為 React.createElement 調用&#xff0c;以下為轉換對照&#xff1a; // 原始 JSX <MyCo…

若依改用EasyCaptcha驗證碼

若依自帶的驗證碼樣式比較單一&#xff0c;所以想改用EasyCaptcha驗證碼&#xff0c;另外EasyCaptcha算術驗證碼可能會有負數&#xff0c;輸入時需要寫負號&#xff0c;比較麻煩&#xff0c;所以使用一個簡單的方法過濾掉負數結果 原本的驗證碼依賴和代碼可刪可不刪&#xff0c…

趣味編程之go與rust的愛恨情仇

聲明:此篇文章利用deepseek生成。 第一章&#xff1a;出身之謎 Go&#xff08;江湖人稱"高小戈"&#xff09;是名門之后——谷歌家的三少爺。生來就帶著"簡單粗暴"的家族基因&#xff0c;口號是**“少寫代碼多搬磚&#xff0c;并發處理賽神仙”**。它爹Ro…

【cocos creator 3.x】速通3d模型導入, 模型創建,陰影,材質使用,模型貼圖綁定

1、右鍵創建平面&#xff0c;立方體 2、點擊場景根節點&#xff0c;shadows勾選enabled3、點擊燈光&#xff0c;shadow enabled勾選 4、點擊模型&#xff0c;勾選接收陰影&#xff0c;投射陰影&#xff08;按照需要勾選&#xff09; 5、材質創建 6、選中節點&#xff0c;找…

告別昂貴語音合成服務!用GPT-SoVITS生成你的個性化AI語音

文章目錄 前言1.GPT-SoVITS V2下載2.本地運行GPT-SoVITS V23.簡單使用演示4.安裝內網穿透工具4.1 創建遠程連接公網地址 5. 固定遠程訪問公網地址 前言 今天給大家介紹一款AI語音克隆工具——GPT-SoVITS。這款由花兒不哭大佬開發的工具是一款強大的訓練聲音模型與音頻生成工具…

Doris FE 常見問題與處理指南

在數據倉庫領域&#xff0c;Apache Doris 憑借其卓越性能與便捷性被廣泛應用。其中&#xff0c;FE&#xff08;Frontend&#xff09;作為核心組件&#xff0c;承擔著接收查詢請求、管理元數據等關鍵任務。然而&#xff0c;在實際使用中&#xff0c;FE 難免會遭遇各類問題&#…