تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ادخال عناصر الى مصفوفه
#1
الاخوة الاعزاء اود الاستفسار عن كيفية ادخال بينات الى مصفوفه برمجيا
مثال على ذلك
اقوم حاليا بتطوير برنامج رسم ثلاثي ابعاد
بحثت عبر الانترنت فوجدت كود يخدمني ولكنه قام بادخال احداثيات النقاط يدويا بالشكل التالي
كود :
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(,)
\وشكر لكم
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

استخدم 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

السلام عليكم ورحمة الله وبركاته
الرد }}}}
تم الشكر بواسطة:
#3
شكرا اخي لاهتمامك
ولكن class الخاص ب 3d يعتمد كليا على المصفوفة من نوع array 2d
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته

إعتمادا على ما وضعتموه من مثال المكعب، عملت لكم طريقتين لوضع الإحداثيات

أولا: التصريح عن مصفوفة خاصة بالمكعب كالتالي
كود :
' المكعب له 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

أرجو أن أكون أفدتكم

السلام عليكم ورحمة الله وبركاته
الرد }}}}
تم الشكر بواسطة:
#5
@@أبورائد@@ كتب :السلام عليكم ورحمة الله وبركاته

إعتمادا على ما وضعتموه من مثال المكعب، عملت لكم طريقتين لوضع الإحداثيات

أولا: التصريح عن مصفوفة خاصة بالمكعب كالتالي
كود :
' المكعب له 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

أرجو أن أكون أفدتكم

السلام عليكم ورحمة الله وبركاته


شكرا لك اخي ولك من اهتم بالموضع
لقد نجحت الفكرة
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] هل يمكن عرض عناصر الكومبوبوكس عن طريق الكود ؟؟؟؟؟؟؟؟؟؟؟؟ thevirus 1 112 10-11-16, 06:25 PM
آخر رد: أبو عمر
  ادخال تاريخ الميلاد makky 3 99 29-10-16, 01:41 AM
آخر رد: أبو عمر
Rainbow [VB.NET] طلب بسيط: فورم ادخال بيانات خاص بالمطارات | ضرورى يجب تسلميه بعد بضع ساعات مشروع تخرج الماجيك مسعد 17 344 28-10-16, 08:31 AM
آخر رد: الماجيك مسعد
  طريقة ادخال ارقام في صندوق نص hatem555 3 442 27-10-16, 03:37 PM
آخر رد: rafaag777
Information [VB.NET] طريقة عمل مربع حوار يعمل على ادخال صورة إلى قاعدة البيانات thevirus 1 81 24-10-16, 01:49 PM
آخر رد: Adrees
  هل يمكن ادخال مجموعة اصفار في عمود Primarykey في SQL abushahewa_ly 2 140 23-05-16, 09:50 AM
آخر رد: samerselo
  [VB.NET] كيفية استيراد وتصدير عناصر الداتا جريد فيو من والى ملف نصى TXT FILE الماجيك مسعد 8 367 03-04-16, 06:08 PM
آخر رد: الماجيك مسعد
  [VB.NET] كيفية عرض عناصر الليست فيو الى اداة الكومبو بوكس؟ الماجيك مسعد 3 386 17-03-16, 04:30 PM
آخر رد: hassan
  [VB.NET] كيفية حفظ عناصر DataGridView الى ملف نصى text file الماجيك مسعد 5 303 18-01-16, 04:55 PM
آخر رد: الماجيك مسعد
  [سؤال] ادخال البيانات من textbox الى datagrid دون الحفظ احمد عبد الحكيم 3 431 30-12-15, 07:27 PM
آخر رد: احمد عبد الحكيم

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم