檢查模型點是否重合

2021-08-11 11:04:30 字數 1978 閱讀 5608

今天弄了個檢查模型點是否有重合的command,好久不用api都陌生了;帶有乙個flag——shreshold,簡寫sr,設定需要檢查兩點之間的最小距離,再小於這個距離就算是重合的點了,command會將這兩個點同時返回。源**如下:

#ifndef _check_overlap_point

#define _check_overlap_point

#include

#include

#include

#include

using

namespace

std;

;#endif

#include

#include

#include

#include

#include

#include

#include

#include

const char *shresholdflag = "-sr", *shresholdlongflag = "shreshold";

mselectionlist selection;

mdagpath objectpath;

mglobal::getactiveselectionlist(selection);

mitselectionlist iter(selection);

mpointarray meshpoints, copypoints;

double pointdistance;

for(unsigned int j = 0; j < selection.length(); j++)

pointdistance = meshpoints[k].distanceto(copypoints[l]);

if (pointdistance < shreshold)

}index ++;

}mstring modelname = objectmesh.partialpathname();

for (unsigned int

m = 0; m

mstring pointname;}}

return

stat;

}mstatus initializeplugin( mobject obj )

mstatus uninitializeplugin( mobject obj )

最開始採用的是這種遍歷,計算的次數為n的n次方;

for (unsigned int k = 0; k < meshpoints.length(); k ++)

pointdistance = meshpoints[k].distanceto(meshpoints[l]);

if (pointdistance < shreshold)}}

發現這樣的計算速度太慢於是改進了下,這樣計算的次數是n的階乘,不過記憶體開銷是原來的兩倍,以記憶體換速度了;

for (unsigned int k = 0; k < meshpoints.length(); k ++)

pointdistance = meshpoints[k].distanceto(copypoints[l]);

if (pointdistance < shreshold)

}index ++;

}

最後在maya裡返回的是個列表或陣列,使用者可以根據這個結果做進一步的操作,是merge還是選擇都行,效能上來說還可以,比python版的api能快至少100倍。

使用如下:

// mel

效果如下圖:

PHP判斷地理圍欄是否有重合

判斷地理圍欄是否有重合 points 二維陣列內含經緯度座標 arr 二維陣列,元素內為json格式的二維陣列 return bool true為有重合 false為沒有重合 function in geo array points array arr if empty arr is array a...

檢查文件是否存在

如果只想檢查乙個文件是否存在 根本不想關心內容 那麼用 head方法來代替get方法。head請求沒有返回體,只返回乙個 http 請求報頭 i 如果文件存在,elasticsearch 將返回乙個200 ok的狀態碼 1.1 200ok content type text plain charse...

埠檢查是否開放

序 今早上班,老婆說她們樓層的 長又作妖。孕婦 服領用申請不簽字,又推脫說下星期再說。md你要推脫你就早直接這樣說啊,幹嘛說要找總 長簽字,去了被總 長懟一頓,說找樓層。一老 還天天臭美,打玻尿酸,很多其他事情也是,一點擔當都沒有,佔著茅坑不拉屎。正好最近準備研究下網路安全,於是就研究下他們醫院的官...