سؤال
هل هناك أي فرعية، في matlab., ، الذي يأخذ في قائمة النقاط، وعادتني شبكة جيدة يمكنني استخدامها لإظهار زملائي، مثل هذا؟
في الواقع، كل ما أحتاج إليه هو مجرد مولد شبكي ثنائي الأبعاد بسيط يأخذ في سلسلة من x، y forminates (يحدد حدود المنطقة)، وأعطاني قائمة بالعناصر التي يمكن أن تربط تلك المنطقة جيدا. يمكنني أن أفعل الباقي باستخدام الأمر MATLAB لترابط قيمة Z.
تحرير: أنا ليس مهتم باستخدام MATLAB لإنتاج مؤامرة مظهر أعلاه. أنا مهتم باستخدام مكتبة MATLAB للحصول على قائمة بالعناصر بحيث عندما أرسم هذه العنصر بنفسي (ليس في Matlab نفسه؛ ولكن في برنامجي C #)، يمكنني الحصول على هذا السطح المشترك.
ملاحظة: أعرف أن هناك هذا Distmesh., ، لكنني أبحث عن شيء أبسط - شيء مدمج مباشر في ماتلاب ربما. و لا، meshgrid. يكون ليس توليد شبكة.
المحلول
يبدو وكأنك تريد إنشاء العنصر المحدود شبكة, ، بدءا من مجموعة من النقاط التي تحدد حدود المنطقة ثم توليد شبكة ثلاثية يخلق المزيد من النقاط داخل تلك المنطقة. لا أعتقد أن هناك حل "بسيط" لهذه المشكلة.
ربما يكون أقرب حل "مدمج" هو مربع أدوات المعادلة التفاضلية الجزئية, ، وتحديدا بعض من خوارزميات الهندسة مثل initmesh. و refinemesh..
الرابط الذي قدمته ل Distmesh. يبدو أنه حل جيد آخر. هناك أيضا عدد قليل من التقديمات على MathWorks File Exchange. يمكن أن نلقي نظرة على:
- mesh2d. بواسطة دارين engwirda.
- Toolbox عنصر محدود 2.1 بواسطة راسموس أنثين
نصائح أخرى
أعتقد أن المستخدم الذي تم إنشاؤهgridfit."هو أفضل ما صادفته لسطح واحد، أفضل بكثير / أجمل من Griddata.
شبكة الجيل كما هو الحال في delaunay triangulation + نقاط شتاينر؟ هناك وظيفة delaunay المدمجة في ماتلاب.
إذا كان سطحك هو نموذج Z = f (x، y) يمكنك استخدامها:
http://www.advancedmcode.org/how-to-plot-a-coloured-surface-from-3d-scatter.html.
إذا كان السطح الخاص بك، فابحث عن إعادة بناء السطح على نفس الموقع.