多角形の90°以下の角を90°にするVEX

   354   0   0
User Avatar
Member
1 posts
Joined: 3月 2022
Offline
多角形の鋭角を直角にしたくてVEXを書いていました。
ポイント番号順に処理したいのですが、初期状態のポイント位置で計算してしまいます。
移動した後のポイントを考慮しながら処理してほしいのですが、どうしたらいいでしょうか?

for (int i = 1; i < @numpt-1; i++) {
vector A = point(0, "P", i);
vector B = point(0, "P", i - 1);
vector C = point(0, "P", i + 1);

vector dirprev = B - A;
vector dirnext = C - A;

float dot = dot(normalize(dirprev),normalize(dirnext));

float deg = degrees(acos(dot));

if(deg < 90)
{
float t = dot(dirnext,dirprev)/dot(dirprev,dirprev);
vector D = A + t *dirprev;
setpointattrib(0,"P",i,D,"set");
}
}
Edited by joeyamaya - 2023年12月21日 20:43:17

Attachments:
角度調整.jpg (37.3 KB)

  • Quick Links