Saturday 18 March 2017

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

မဂၤလာပါ အေပါင္းအသင္းတို ့ေရ...

ဒီ Post က စလို ့ 3D Geometry ဖန္တီးပံုေတြကို တင္ၿပေဆြးေႏြးသြားဖို ့ ရွိပါတယ္။ 3D Geometry ဖန္တီးပံု ဆိုေပမယ့္လည္း 3D တခု ၿဖစ္လာဖို ့ ဆိုတာ 2D Geometry နဲ ့ ေပါင္းစပ္ဖြဲ ့စည္းရတာမို ့ 2D Geometry အပိုင္းမွာ ေဆြးေႏြးၿပီးသား အပိုင္းေတြေရာ၊ မေဆြးေႏြးၿဖစ္ေသးတဲ့ အပိုင္းေတြကိုပါ အလ်င္းသင့္သလို တင္ၿပသြားဖို ့ စီစဥ္ထားပါတယ္။

(က်ေနာ္ကိုယ္တိုင္ကိုက ဒီ Programming ကို ေလ့လာေနသူတဦး အဆင့္သာ ရွိေသးတာေႀကာင္း တင္ၿပေဆြးေႏြးမွုေတြဟာ အေၿခခံမွာတင္ တ၀ဲလည္လည္လည္း ၿဖစ္ေကာင္းၿဖစ္ေနႏိုင္တာကို နားလည္ေပးႏိုင္လိမ့္မယ္လို ့ ေမွ်ာ္လင့္ပါတယ္။

လုပ္ငန္းခြင္မွာ အသံုး၀င္တဲ့ Code ေတြေရးသားပံုကိုလည္း အတတ္ႏိုင္ဆံုးနဲ ့ အၿမန္ဆံုးေဆြးေႏြး တင္ၿပခ်င္ပါတယ္။ ဒါေပမယ့္ Programming ရဲ့သေဘာအရ အေၿခခံမွ ပိုင္ႏိုင္မွု မရွိရင္ Code ေတြေရးသားႏိုင္သူ ၿဖစ္မလာပဲ Code ေတြ Copy/ Paste လုပ္သူသာ ၿဖစ္သြားႏိုင္တာမို ့အခုလို အေၿခခံ အပိုင္းေတြကို အခ်ိန္ေပးၿပီး တင္ၿပေနရၿခင္းပဲ ၿဖစ္ပါတယ္။

တဖက္ကႀကည့္ၿပန္ရင္လည္း အေၿခခံမွာတင္ တ၀ဲလည္လည္လည္း ၿဖစ္လြန္းေနၿပန္ရင္လည္း က်ေနာ္ေရာ အေပါင္းအသင္းတို ့ပါ အီလည္လည္ၿဖစ္ၿပီး ပ်င္းရိ စိတ္ပ်က္သြားမွာကိုေတာ့ စိုးရိမ္မိပါတယ္။ ဒီ 3D Geometry ဖန္တီးပံုကို အတတ္ႏိုင္ဆံုး အတိုခ်ံဳးၿပီး ထိထိေရာက္ရွိေအာင္ တင္ၿပ ေဆြးေႏြးသြားပါမယ္။

တကယ္လို ့ က်ေနာ့္တင္ၿပေဆြးေႏြးမွုမွာ မပါ၀င္လိုက္တဲ့ တခ်ိဳ ့ေသာ Node ေတြအေႀကာင္းကို သိခ်င္ရင္ Facebook ကေနၿဖစ္ေစ၊ Post တြေအာက္က Comment Box ကေနၿဖစ္ေစ ေမးၿမန္းႏိုင္ပါတယ္။
က်ေနာ္ မေၿဖႏိုင္တဲ့ ေမးခြန္းေတြ ဆိုရင္လည္း တတ္သိကၽြမ္းက်င္တဲ့ သူေတြဆီကို ေမးၿမန္းၿပီး ၿပန္လည္ေၿဖႀကားေပးပါ့မယ္။)

3D Geometry အတြက္ ပထမဆံုး အေနနဲ ့ Cuboid ေလးနဲ ့စလိုက္ႀကရေအာင္။
Library ကေန Geometry > Cuboid ကို သြားလိုက္တာနဲ ့ Create အတြက္ Node (၄)ခုရယ္၊ Query အတြက္ Node (၃)ခုရယ္ကို အရင္ဆံုး ေတြ ့ၿမင္ရမွာပါ။
အဲ့ဒီ Create အတြက္ Node (၄)ခုထဲကမွ ဒုတိယတခုၿဖစ္တဲ့ Cuboid.ByLengths (width, length, height) ဆိုတဲ့ Node နဲ ့ Cuboid တခု ဖန္တီးႀကရေအာင္။ သူ ့မွာ width, length, height ဆိုတဲ့ input (၃)ခု ပါ၀င္ေနပါမယ္။

ဘာ Value မွမေပးဘဲ အဲ့ဒီ Node နဲ ့တင္ Run လိုက္ရင္ေတာ့ width, length, height ရဲ့ Value ေတြဟာ 1 unit စီ ရွိေနၿပီး သူ ့ရဲ့ Centroid ဟာ (0,0,0) မွာ Default အေနနဲ ့ၿမင္ေတြ ့ႀကရမွာပါ။
ဒီေနရာမွာ ေမးစရာ ရွိလာတာက ဘယ္လိုအေၿခအေနမ်ိဳးမွာ က်န္တဲ့ Node ေတြကို သံုးရမလဲ ဆိုတာပါပဲ။
တတိယ Node ၿဖစ္တဲ့ Cuboid.ByLengths (origin, width, length, height) မွာ ဆိုရင္ေတာ့ origin ဆိုတဲ့ input (၁)ခု ပိုပါလာတာကို ေတြ ့ရမွာပါ။ width, length, height တို ့ရဲ့ တန္ဖိုး အၿပင္ အဲ့ဒီ Cuboid ရဲ့ Centroid (or) Origin တန္ဖိုးကိုပါ ေပးလို ့ရေနပါၿပီ။
 
ေနာက္ဆံုး Node ၿဖစ္တဲ့ Cuboid.ByLengths (cs, width, length, height) မွာ ဆိုရင္ေတာ့ Cuboid ရဲ့ Centroid အတြက္ Coordinate System ကိုပါ ေပးလို ့ရတဲ့ အေၿခအေနမ်ိဳး ၿဖစ္ေနပါၿပီ။

ဘယ္အခ်ိန္မွာ Origin တန္ဖိုး သတ္မွတ္ဖို ့လိုမယ္၊ ဘယ္အခ်ိန္မွာ Coordinate System သတ္မွတ္ဖို ့လိုမယ္ ဆိုတာကေတာ့ ကိုယ္ဖန္တီးခ်င္တဲ့ Code ရဲ့ လိုအပ္ခ်က္ အေပၚမွာပဲ မူတည္ေနမွာ ၿဖစ္ပါတယ္။ အသံုး၀င္တဲ့ Node ေတြ အေၿမာက္အၿမား ေပးထားတဲ့ ႀကားကေနမွ ကိုယ္ဖန္တီးခ်င္တဲ့ Code ရဲ့ လိုအပ္ခ်က္ေတြကို ၿဖည့္စြက္ႏိုင္ဖို ့ ဆိုတာကေတာ့ ရွာေဖြစမ္းသပ္ႏိုင္မွုေတြ၊ ေလ့လာစူးစမ္းလိုမွုေတြ အေပၚမွာ အမ်ားႀကီး မူတည္ေနပါတယ္။

လာမယ့္ Post မွာေတာ့ Solid Form ေတြ ဖန္တီးပံုကို ဆက္လက္ တင္ၿပေဆြးေႏြးသြားဖို ့ရွိပါတယ္။ Solid Form ဆိုေပမယ့္လည္း သူ ့ရဲ့ ၿဖစ္တည္မွုအတြက္ လိုအပ္ေနမယ့္ အေထာက္အပံ့ေတြ ၿဖစ္ႀကတဲ့ Create, Action, Query ဆိုတဲ့ Node အမ်ိဳးအစားေတြထဲက သင့္ေတာ္ရာ Node ေတြကို အသံုးၿပဳတင္ၿပေဆြးေႏြးသြားမွာမို ့ ေစာင့္ေမွ်ာ္အားေပးႀကပါအံုး...လို ့။

No comments:

Post a Comment