ادخال عناصر الى مصفوفه - محمد عمر مصصطفى - 16-12-12
الاخوة الاعزاء اود الاستفسار عن كيفية ادخال بينات الى مصفوفه برمجيا
مثال على ذلك
اقوم حاليا بتطوير برنامج رسم ثلاثي ابعاد
بحثت عبر الانترنت فوجدت كود يخدمني ولكنه قام بادخال احداثيات النقاط يدويا بالشكل التالي
كود :
Dim PointsArray(,) As Double = { _
{0, 40, 0}, _
{0, 40, 50}, _
{50, 40, 0}, _
{50, 40, 50}, _
{0, 0, 50}, _
{50, 0, 50}, _
{50, 0, 0}, _
{0, 0, 0}}
لرسم مكعب
انا اريد استيراد ملف dxf ثلاثي ابعاد وتحويله الى xyz ثم رسمة باستخدام هذه المصفوفة
فاذا تكرمتم علينا بعلمكم بكيفيه ادراج عناصر داخل المصفوفة برمجيا
علما ان المصفوفه PointsArray(,) معرفه بانها arry(,)
\وشكر لكم
ادخال عناصر الى مصفوفه - @@أبورائد@@ - 17-12-12
السلام عليكم ورحمة الله وبركاته
استخدم List (Of فهي متقدمة ومرنة أكثر من المصفوفة التقليدية، وتعامل معها كما تتعامل مع Items التي تخص ListBox أو ComboBox من حيث الإضافة والحذف والإدراج في وسطها إلخ...، وإليك مثال جربه
طبعا الـ (Class Point3d) هو يكتب مرة واحدة فقط..
كود :
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myPoints3D As New List(Of Point3d)
myPoints3D.Add(New Point3d(0, 40, 0))
myPoints3D.Add(New Point3d(0, 40, 50))
myPoints3D.Add(New Point3d(50, 40, 0))
myPoints3D.Add(New Point3d(50, 40, 50))
myPoints3D.Add(New Point3d(0, 0, 50))
myPoints3D.Add(New Point3d(50, 0, 50))
myPoints3D.Add(New Point3d(50, 0, 0))
myPoints3D.Add(New Point3d(0, 0, 0))
End Sub
#Region " Class Point3d "
Class Point3d
Private _x As Double
Private _y As Double
Private _z As Double
Sub New()
End Sub
Sub New(ByVal x As Double, ByVal y As Double, ByVal z As Double)
_x = x
_y = y
_z = z
End Sub
Public Property x() As Double
Get
Return _x
End Get
Set(ByVal value As Double)
_x = value
End Set
End Property
Public Property y() As Double
Get
Return _y
End Get
Set(ByVal value As Double)
_y = value
End Set
End Property
Public Property z() As Double
Get
Return _z
End Get
Set(ByVal value As Double)
_z = value
End Set
End Property
End Class
#End Region
End Class
السلام عليكم ورحمة الله وبركاته
ادخال عناصر الى مصفوفه - محمد عمر مصصطفى - 17-12-12
شكرا اخي لاهتمامك
ولكن class الخاص ب 3d يعتمد كليا على المصفوفة من نوع array 2d
ادخال عناصر الى مصفوفه - @@أبورائد@@ - 17-12-12
السلام عليكم ورحمة الله وبركاته
إعتمادا على ما وضعتموه من مثال المكعب، عملت لكم طريقتين لوضع الإحداثيات
أولا: التصريح عن مصفوفة خاصة بالمكعب كالتالي
كود :
' المكعب له 8 نقاط، ولكل نقطة 3 إحداثيات
' بما أن فهرس المصفوفة في البرمجة يبدأ من الصفر
' فننشئ المصفوفة كالتالي
Dim PointsArray(7, 2) As Double
' الـ 7 هي الثمان نقاط للمكعب وتحسب مع الصفر
' الـ 2 هي الثلاث إحداثيات وتحسب مع الصفر
ثانيا: الطريقة الأولى لوضع قيم إحداثيات النقاط في المصفوفة
كود :
' إحداثيات النقطة الأولى وهي الصفر
' {0, 40, 0}
PointsArray(0, 0) = 0
PointsArray(0, 1) = 40
PointsArray(0, 2) = 0
' إحداثيات النقطة الثانية
' {0, 40, 50}
PointsArray(1, 0) = 0
PointsArray(1, 1) = 40
PointsArray(1, 2) = 50
' {50, 40, 0}
PointsArray(2, 0) = 50
PointsArray(2, 1) = 40
PointsArray(2, 2) = 0
' {50, 40, 50}
PointsArray(3, 0) = 50
PointsArray(3, 1) = 40
PointsArray(3, 2) = 50
' {0, 0, 50}
PointsArray(4, 0) = 0
PointsArray(4, 1) = 0
PointsArray(4, 2) = 50
' {50, 0, 50}
PointsArray(5, 0) = 50
PointsArray(5, 1) = 0
PointsArray(5, 2) = 50
' {50, 0, 0}
PointsArray(6, 0) = 50
PointsArray(6, 1) = 0
PointsArray(6, 2) = 0
' {0, 0, 0}
PointsArray(7, 0) = 0
PointsArray(7, 1) = 0
PointsArray(7, 2) = 0
الطريقة الثانية (وهي تختصر الكود) لوضع قيم إحداثيات النقاط في المصفوفة بالاستعانة بدالة
كود :
' SetPoint3D طريقة أخرى مختصرة لوضع إحداثيات النقاط تستعين بالدالة
SetPoint3D(PointsArray, 0, 0, 40, 0)
SetPoint3D(PointsArray, 1, 0, 40, 50)
SetPoint3D(PointsArray, 2, 50, 40, 0)
SetPoint3D(PointsArray, 3, 50, 40, 50)
SetPoint3D(PointsArray, 4, 0, 0, 50)
SetPoint3D(PointsArray, 5, 50, 0, 50)
SetPoint3D(PointsArray, 6, 50, 0, 0)
SetPoint3D(PointsArray, 7, 0, 0, 0)
الدالة SetPoint3D
كود :
' SetPoint3D الدالة
Public Sub SetPoint3D(ByRef array As Array, ByVal Point As Integer, ByVal x As Double, ByVal y As Double, ByVal z As Double)
array(Point, 0) = x
array(Point, 1) = y
array(Point, 2) = z
End Sub
أرجو أن أكون أفدتكم
السلام عليكم ورحمة الله وبركاته
ادخال عناصر الى مصفوفه - محمد عمر مصصطفى - 18-12-12
@@أبورائد@@ كتب :السلام عليكم ورحمة الله وبركاته
إعتمادا على ما وضعتموه من مثال المكعب، عملت لكم طريقتين لوضع الإحداثيات
أولا: التصريح عن مصفوفة خاصة بالمكعب كالتالي
كود :
' المكعب له 8 نقاط، ولكل نقطة 3 إحداثيات
' بما أن فهرس المصفوفة في البرمجة يبدأ من الصفر
' فننشئ المصفوفة كالتالي
Dim PointsArray(7, 2) As Double
' الـ 7 هي الثمان نقاط للمكعب وتحسب مع الصفر
' الـ 2 هي الثلاث إحداثيات وتحسب مع الصفر
ثانيا: الطريقة الأولى لوضع قيم إحداثيات النقاط في المصفوفة
كود :
' إحداثيات النقطة الأولى وهي الصفر
' {0, 40, 0}
PointsArray(0, 0) = 0
PointsArray(0, 1) = 40
PointsArray(0, 2) = 0
' إحداثيات النقطة الثانية
' {0, 40, 50}
PointsArray(1, 0) = 0
PointsArray(1, 1) = 40
PointsArray(1, 2) = 50
' {50, 40, 0}
PointsArray(2, 0) = 50
PointsArray(2, 1) = 40
PointsArray(2, 2) = 0
' {50, 40, 50}
PointsArray(3, 0) = 50
PointsArray(3, 1) = 40
PointsArray(3, 2) = 50
' {0, 0, 50}
PointsArray(4, 0) = 0
PointsArray(4, 1) = 0
PointsArray(4, 2) = 50
' {50, 0, 50}
PointsArray(5, 0) = 50
PointsArray(5, 1) = 0
PointsArray(5, 2) = 50
' {50, 0, 0}
PointsArray(6, 0) = 50
PointsArray(6, 1) = 0
PointsArray(6, 2) = 0
' {0, 0, 0}
PointsArray(7, 0) = 0
PointsArray(7, 1) = 0
PointsArray(7, 2) = 0
الطريقة الثانية (وهي تختصر الكود) لوضع قيم إحداثيات النقاط في المصفوفة بالاستعانة بدالة
كود :
' SetPoint3D طريقة أخرى مختصرة لوضع إحداثيات النقاط تستعين بالدالة
SetPoint3D(PointsArray, 0, 0, 40, 0)
SetPoint3D(PointsArray, 1, 0, 40, 50)
SetPoint3D(PointsArray, 2, 50, 40, 0)
SetPoint3D(PointsArray, 3, 50, 40, 50)
SetPoint3D(PointsArray, 4, 0, 0, 50)
SetPoint3D(PointsArray, 5, 50, 0, 50)
SetPoint3D(PointsArray, 6, 50, 0, 0)
SetPoint3D(PointsArray, 7, 0, 0, 0)
الدالة SetPoint3D
كود :
' SetPoint3D الدالة
Public Sub SetPoint3D(ByRef array As Array, ByVal Point As Integer, ByVal x As Double, ByVal y As Double, ByVal z As Double)
array(Point, 0) = x
array(Point, 1) = y
array(Point, 2) = z
End Sub
أرجو أن أكون أفدتكم
السلام عليكم ورحمة الله وبركاته
شكرا لك اخي ولك من اهتم بالموضع
لقد نجحت الفكرة
RE: ادخال عناصر الى مصفوفه - eng.hamza - 20-04-20
اخي ممكن مساعدة في المصفوفة التالية : -
|