第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

查找具有旋轉(zhuǎn)軸的旋轉(zhuǎn)多邊形的邊界框

查找具有旋轉(zhuǎn)軸的旋轉(zhuǎn)多邊形的邊界框

縹緲止盈 2021-05-06 14:09:33
我在這里瀏覽了其他一些接近的答案,但是找不到解決我問題的任何方法。我有一個(gè)繞軸位置旋轉(zhuǎn)的多邊形,我需要找到該多邊形的邊界框。本質(zhì)上,邊界框?qū)ο髴?yīng)具有左上角的x和y位置,以及框本身的width和height。我可以使用此代碼來計(jì)算不旋轉(zhuǎn)的多邊形的框,但它也不考慮旋轉(zhuǎn)。紅色正方形是當(dāng)前沒有旋轉(zhuǎn)的邊界框,綠色圓圈是旋轉(zhuǎn)軸,多邊形是多邊形本身。理想情況下,我不想在每次調(diào)用時(shí)重新計(jì)算每個(gè)頂點(diǎn)的位置以獲取邊界框,而是希望它位于數(shù)學(xué)本身中。這是不旋轉(zhuǎn)的多邊形和邊界框的示例:https : //i.imgur.com/MSOM9Q1.mp4這是我當(dāng)前的代碼,用于查找非旋轉(zhuǎn)多邊形的邊界框:const minX = Math.min(...this.vertices.map((vertex) => vertex.x));const minY = Math.min(...this.vertices.map((vertex) => vertex.y));return {    x: minX + this.position.x,    y: minY + this.position.y,    width: Math.max(...this.vertices.map((vertex) => vertex.x)) - minX,    height: Math.max(...this.vertices.map((vertex) => vertex.y)) - minY};多邊形對(duì)象結(jié)構(gòu):該position是多邊形的中心的rotationAxis是相對(duì)于多邊形的中心(位置)的矢量所述vertices陣列可相對(duì)于多邊形的中心向量的列表邊界框結(jié)構(gòu):我需要做什么來計(jì)算旋轉(zhuǎn)多邊形的邊界框?
查看完整描述

1 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果不想在任何旋轉(zhuǎn)/平移后從多邊形的所有頂點(diǎn)重新計(jì)算與軸對(duì)齊的BBOX,請(qǐng)從僅4個(gè)頂點(diǎn)的OBB中進(jìn)行操作...

  1. 計(jì)算未旋轉(zhuǎn)/未平移多邊形的OBB

    此操作很慢,但只能執(zhí)行一次(除非您的多邊形正在改變形狀或大?。?/p>

  2. 在多邊形的任何變換中

    也以相同的方式轉(zhuǎn)換OBB頂點(diǎn)。然后根據(jù)轉(zhuǎn)換后的OBB頂點(diǎn)計(jì)算軸對(duì)齊的BBOX(只需像現(xiàn)在一樣查找最小/最大坐標(biāo))即可。

這樣,您只需要從4個(gè)頂點(diǎn)計(jì)算內(nèi)容,而不必將N復(fù)雜度從O(N)轉(zhuǎn)換為O(1)

此外,擁有OBB可能會(huì)在以后派上用場(chǎng),因?yàn)樗梢约涌炷承┎僮?,甚至可以提高碰撞測(cè)試的精度等。


查看完整回答
反對(duì) 回復(fù) 2021-05-27
  • 1 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)