前回の記事で多角形GDLに各頂点の角度を追加してみました。
今回はそれに面積の機能を追加していこうと思います。
自己交差のない多角形面積の計算
これをGDLで書くと以下のようになります。
マスタースクリプト
s=0 for i=1 to vertices if i=vertices then i2=1 else i2=i+1 endif s=s+(x[i]-x[i2])*(y[i]+y[i2]) next i area=abs(s)/2 parameters area=areaさ
さらに2Dスクリプトでtext2コマンドを使って面積を表示します。
ホットスポットを追加して、数値を任意の位置に移動できるようにしています。
2Dスクリプト
hotspot2 0 , area_pos[2], unID, area_pos[1], 1+128 :unID=unID+1 hotspot2 area_pos[1], area_pos[2], unID, area_pos[1], 2 :unID=unID+1 hotspot2 -1 , area_pos[2], unID, area_pos[1], 3 :unID=unID+1 hotspot2 area_pos[1], 0 , unID, area_pos[2], 1+128 :unID=unID+1 hotspot2 area_pos[1], area_pos[2], unID, area_pos[2], 2 :unID=unID+1 hotspot2 area_pos[1], -1 , unID, area_pos[2], 3 :unID=unID+1 text2 area_pos[1], area_pos[2], str(area, 4, 2)+ "㎡"
今回は以上となります。
最近は、より汎用的な基本プログラムに重点を置いてブログを書いています。
次回も機能を追加していきたいと思います。
なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!
また、ココナラでのサポートサービスも始めましたので、
ご活用いただければと思います。
1日GDL作成やArchiCAD関連の相談のります 自分でGDLを作成している方へ【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore
世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。