في الموضوع التالي نبين كيفية إضاءة الأجسام الثلاثية الأبعاد، تغيير لون الإشعاعات الضوئية، وكذلك التحكم في الطريقة التي تنتشر بها الإشعاعات الضوئية، وأخيرا تحديد نمط توزيع الضوء.
البرنامج التالي يبين لنا كيفية استعمال الإضاءة وبعض خصائص وطرق التحكم فيها:
1.نبدأ تطبيق دلفي - متعدد الأجهزة جديد فارغ.
2.نضيف إلى الإطار العنصر
3.نضع أيضا على إطار عنصر
البرنامج التالي يبين لنا كيفية استعمال الإضاءة وبعض خصائص وطرق التحكم فيها:
1.نبدأ تطبيق دلفي - متعدد الأجهزة جديد فارغ.
2.نضيف إلى الإطار العنصر
TToolBar
لوضع أزرار التحكم.3.نضع أيضا على إطار عنصر
TViewPort3D
وتعديل بعض خصائصه على مفتش الكائنات، كما يلي:
Align = Client Color = claTeal Name =Viewport3D1
4.نضيف كائن
TLight
إلى العنصر ViewPort3D1
ونعدل بعض خصائصه كما يلي :
Color = claWhite LightType = Directional
5.نضيف كائن
TLightMaterialSource
ونعدل بعض خصائصه كما يلي :
Diffuse = claWhite Ambient = claOrangered Emissive = claNull
6.نضيف إلى العنصر
Viewport3D1
الكائن الثلاثي الأبعاد : TroundCube
ونعدل خصائصه على مفتش الكائنات كما يلي :
Width = 4 Height = 3 Depth = 6 MaterialSource = LightMaterialSource1
6.نضع على
TToolBar
عنصر TButton
ونعدل بعض خصائصه كما يلي :
Align = Left Text = 'ON'
7- ننقر نقرا مزدوجا على الزر
Button1
ونكتب الكود التالي :
procedure TForm1.Button1Click(Sender: TObject); begin if Button1.Text = 'ON' then begin Light1.Enabled := False; Button1.Text := 'OFF' end else begin Light1.Enabled := True; Button1.Text := 'ON' end; end;
والشكل التالي يبين مظهر تصميم البرنامج
عند تنفيذ هذا البرنامج بالضغط على المفتاح F9 نحصل الشكل التالي :
لمعرفة تأثير الخاصية
TLightType
و الخصية Color
نقوم بإضافة عنصرين على الشريط TToolBar
وهما العنصر: TComboBox
والعنصر TColorComboBox
، حيث نستعمل الأول للتحكم في نوع الإضاءة والثاني للتحكم في لون الإضاءة كما في الشكل:
ثم نكتب الكود التالي :
procedure TForm1.ColorComboBox1Change(Sender: TObject); begin Light1.Color := ColorComboBox1.Color; Viewport3D1.Repaint; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin Light1.LightType := TLightType(ComboBox1.ItemIndex); Viewport3D1.Repaint; end; procedure TForm1.FormCreate(Sender: TObject); begin ComboBox1.Items.Add('Directional'); ComboBox1.Items.Add('Point'); ComboBox1.Items.Add('Spot'); ComboBox1.ItemIndex := 0; ColorComboBox1.Color := Light1.Color; end;
بعد تنفيذ البرنامج نحصل على الشكل التالي :
يمكن التحكم في زواية دوران العنصر
TLight
وذلك بتغيير زاية الدوران حول المحاور الثلاثة. وللقيام بذلك نضيف على الشريط TToolBar
ثلاثة عناصر TArcDial
ونكتب الكود التالي في الحدث OnChange
للعنصر ToolBar1
procedure TForm1.ArcDial1Change(Sender: TObject); begin Light1.RotationAngle.Point := Point3D(ArcDial1.Value, ArcDial2.Value, ArcDial3.Value); end;
ثم نعمم هذا الكود على باقي العناصر
TArcDial
المتبقية، فنحصل بعد تنفيذ البرنامج على الشكل التالي :
ليست هناك تعليقات:
إرسال تعليق