Saturday 11 March 2017

DYN04.06 : အေၿခခံ Geometry တည္ေဆာက္ၿခင္း - အပိုင္း(၆)

မဂၤလာပါ။

ဒီ Post မွာေတာ့ Line ေတြ Curve ေတြတေလွ်ာက္မွာ Point ေတြကို Array လုပ္ပံုေလး တင္ၿပေဆြးေႏြးသြားခ်င္ပါတယ္။

အရင္ဆံုး Line တခု ဖန္တီးဖို ့ရာ ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း Code Block ကို သံုးၿပီး Node တခု ဖန္တီးႀကည့္ရေအာင္။
ဒီ Code Block ဟာဆိုရင္ Point (0,0) နဲ ့Point (5,2) တိုက္ရိုက္ဖန္တီးေပးတဲ့ Node တခုပါပဲ။ ပံုမွန္အားၿဖင့္ Library ထဲက Point.ByCoordinates (x,y) ကိုသံုးမယ္ဆိုရင္ အနည္းဆံုး Node (၃) ခုေလာက္ကို အသံုးၿပဳရမွာပါ။ တကယ္လို ့ (၂) ခုထက္ ပိုတဲ့ Point ေတြလိုခ်င္ရင္လည္း ေအာက္ကေန လိုအပ္တဲ့ Information ေတြၿဖည့္ၿပီး ဆက္ေရးလို ့ရပါေသးတယ္။
(Code Block ဆိုတဲ့ Node ရဲ့ နာမည္ကို ေၿပာင္းခ်င္ရင္ေတာ့ အဲ့ဒီ Code Block ဆိုတဲ့ စာအေပၚမွာ Double-Click လုပ္ၿပီး ကိုယ္ႏွစ္သက္ရာ နာမည္ကို ေၿပာင္းလဲႏိုင္ပါတယ္။)

ဒုတိယအေနနဲ ့ Line.ByStartPointEndPoint ကိုသံုးၿပီး Line တခုကို ဖန္တီးပါ့မယ္။
ခုဆိုရင္ Line တခု ရပါၿပီ။ ဒီလိုင္းတေလွ်ာက္မွာ Point ေတြကို Array လုပ္ဖို ့ရာ Geometry> Curve> PointAtDistance ကို အသံုးၿပဳပါမယ္။ သူ ့မွာ input အေနနဲ ့ Curve, Distance တို ့ ပါ၀င္ေနပါတယ္။
  • Curve ဆိုတာက Point ေတြကို Array လုပ္ခ်င္တဲ့ လမ္းေႀကာင္းပါပဲ။ 
  • Distance ဆိုတာက အဲ့ဒီ Curve မွာ ခ်ခ်င္တဲ့ Point ေတြနဲ ့ Curve ရဲ့ စမွတ္ကေန ကြာတဲ့ အကြာအေ၀းလို ့ ဆိုႏိုင္ပါတယ္။
Curve ကို Line Node ရဲ့ output နဲ ့ ခ်ိတ္ဆက္ေပးၿပီး Distance ရဲ့ တန္ဖိုးကို (၅) လို ့ေပးလိုက္တဲ့အခါ အေပၚကေဖာ္ၿပထားတဲ့ ပံုအတိုင္း Line ရဲ့ စမွတ္ကေန 5 units အကြာမွာ Point တခုဖန္တီးေပးထားတာကို ၿမင္ေတြ ့ႀကရမွာပါ။ Point ေတြတခုထက္ ပိုၿပီး ဖန္တီးခ်င္ရင္ေတာ့ Distance ရဲ့ တန္ဖိုးကို Number အစား Range နဲ ့ေၿပာင္းလဲ အသံုးၿပဳရမွာ ၿဖစ္ပါတယ္။

Range ကို အသံုးၿပဳတဲ့အခါမွာ အစမွတ္၊ အဆံုးမွတ္၊ ႀကားအကြာအေ၀းေတြ လိုအပ္ပါတယ္။ စမွတ္ ကေတာ့ 0 unit မို ့ ၿပသနာမရွိေပမယ့္ အဆံုးမွတ္ အတြက္က်ေတာ့ အဲ့ဒီ Line ရဲ့ Length ကို သိဖို ့ လိုလာပါတယ္။ ဒါေႀကာင့္ပဲ Range အတြက္ Code Block နဲ ့ Node ေရးတဲ့အခါ
  • 0..x..1.5; လို ့ေရးလိုက္ရပါတယ္။
  • အဆံုးမွတ္ (x) အတြက္ လိိုအပ္ေနတဲ့ တန္ဖိုးကေတာ့ Line ရဲ့ Length ပဲၿဖစ္ပါတယ္။
  • အဲဒီအတြက္ Geometry> Curve ရဲ့ Query> Curve.Length ဆိုတဲ့ Node ကို အသံုးၿပဳၿပီး Line ရဲ့ Length ကို Extract လုပ္ယူလိုက္ရပါတယ္။ 
  • ရလဒ္ကို ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း ရရွိပါမယ္။
ေလာေလာဆယ္ ရရွိထားတဲ့ ရလဒ္အရ Array ဖန္တီးထားတဲ့ Point ေတြက 1.5 units စီၿခားေနတာပါ။ တယ္လို ့ Spacing  နဲ ့မလိုခ်င္ပဲ အေရအတြက္နဲ ့ အညီအမွ် လိုခ်င္တယ္ ဆိုပါဆို ့။

Code Block မွာ 0..x..#6 လို ့ေၿပာင္းေရးလိုက္တာ ၿဖစ္ပါတယ္။
  • အစမွတ္ ဟာ (0) ၿဖစ္ရမယ္။
  • အဆံုးမွတ္ဟာ (x) ၿဖစ္ရမယ္။
  •  # ခံလိုက္တဲ့ အတြက္ Spacing အစား Point (၆) ခုကို အညီမွ်ေ၀မယ္... ဆိုတဲ့ သေဘာကို သက္ေရာက္သြားေစခဲ့ပါတယ္။
Code Block ေတြကို အသံုးၿပဳၿပီး တၿခား Node ေတြကို ကိုယ့္ဖာသာ ဖန္တီးႀကည့္ႀကဖို ့လည္း တိုက္တြန္းလိုက္ပါရေစ။

လာမယ့္ Post မွာေတာ့ 3D Geometry ေတြ ဖန္တီးပံုကို တင္ၿပေဆြးေႏြးသြားဖို ့ရွိပါတယ္။

1 comment:

  1. Harrah's Reno Hotel & Casino - Mapyro
    Harrah's Reno Hotel & Casino. 계룡 출장안마 777 Harrahs Blvd. 전라북도 출장마사지 Reno, NV 89109. 정읍 출장샵 Map. 전라북도 출장샵 Address. 777 Harrahs Blvd. Reno, 경상남도 출장안마 NV, United States of America.

    ReplyDelete