0
0

نمایش شکل های سه بعدی در نرم افزار متلب

387 بازدید
نمایش شکل های سه بعدی در نرم افزار متلب

این مثال نحوه ایجاد و نمایش یک شی سه بعدی پیچیده و کنترل ظاهر آن را نشان می دهد. روش های مختلفی برای نمایش شکل های سه بعدی در نرم افزار متلب وجود دارد. در این پست از سایت کافه مکانیک مثالی را بررسی می کنیم تا با نحوه ی نمایش شکل های سه بعدی در محیط کدنویسی نرم افزار متلب آشنا شویم و دستوراتی که ظاهر شکل را تغییر می دهند، بررسی کنیم. قبل از اینکه به دستورات متلب برای نمایش اشکال سه بعدی بپردازیم، بهتر است که با نحوه نمایش شکل های سه بعدی در متلب که به نام اشیا پچ (Patch Objects) یا اشیا وصله شده شناخته می شوند، آشنا شویم.

پچ آبجکت یا شی پچ چیست؟

یک شیء گرافیکی پچ از یک یا چندین چند ضلعی تشکیل شده است که ممکن است به یکدیگر متصل باشند یا نباشند. از پچ ها برای مدل سازی اشیاء دنیای واقعی مانند هواپیما یا اتومبیل و برای ترسیم چند ضلعی های 2 یا 3 بعدی با شکل دلخواه استفاده می شود. در مقابل، اشیاء سطحی (Surface objects) شبکه‌های مستطیلی چهارضلعی هستند و برای نمایش توپوگرافی‌های مسطح مانند مقادیر توابع ریاضی دو متغیره، کانتورها در یک صفحه مستطیلی یا سطوح پارامتری مانند کره‌ها مناسب‌تر هستند.

تعدادی از توابع نرم افزار MATLAB پچ آبجکت یا اشیاء وصله ایجاد می کنند مانند توابع fill، fill3، isosurface isocaps، برخی از توابع کانتورها، و Patch. این بخش بر روی استفاده از تابع پچ برای نمایش شکل های سه بعدی پیچیده متمرکز است.

با این مقدمه در مورد اشیا پچ به سراغ دستورات متلب برای نمایش و تغییر ظاهر (مانند رنگ و نور) شکل های سه بعدی می رویم.

دریافت هندسه برای نمایش شکل های سه بعدی در نرم افزار متلب

این مثال از یک شی گرافیکی به نام قوری نیوول (Newell Teapot) استفاده می کند. داده های رئوس، وجه ها و رنگ برای قوری توسط تابع teapotData محاسبه می شود. از آنجایی که قوری یک شکل هندسی پیچیده است، دارای تعداد زیادی رأس (4608) و وجه (3872) است که توسط تابع برگردانده می شود.

[verts, faces, cindex] = teapotGeometry;

ایجاد یک شی از نوع پچ برای قوری

با استفاده از داده های هندسی، قوری را می توان با استفاده از دستور patch ترسیم کرد. دستور patch یک شی از نوع پچ ایجاد می کند.

figure
p = patch('Faces',faces,'Vertices',verts,'FaceVertexCData',cindex,'FaceColor','interp')
نمایش شکل های سه بعدی در نرم افزار متلب 1

ویژگی های شی ایجاد شده را با تایپ نام آن (p) در Command Window می توان مشاهده کرد.

p = 
  Patch with properties:

    FaceColor: 'interp'
    FaceAlpha: 1
    EdgeColor: [0 0 0]
    LineStyle: '-'
        Faces: [3872x4 double]
     Vertices: [4608x3 double]

  Show all properties

از دستور view مطابق دستور زیر برای تغییر جهت شی می توان استفاده کرد.

view(-151,30)     % change the orientation
axis equal off    % make the axes equal and invisible
نمایش شکل های سه بعدی در نرم افزار متلب 2

تنظیم میزان شفافیت در نمایش شکل های سه بعدی در نرم افزار متلب

با استفاده از ویژگی FaceAlpha شی پچ، می توان میزان شفافیت شی را تنظیم کرد.

p.FaceAlpha = 0.3;   % make the object semi-transparent
نمایش شکل های سه بعدی در نرم افزار متلب 3

اگر ویژگی FaceColor روی ‘none’ تنظیم شود، شی به صورت سیمی ظاهر می شود.

p.FaceColor = 'none';    % turn off the colors
نمایش شکل های سه بعدی در نرم افزار متلب به صورت سیمی

تغییر رنگ و مشخصات ظاهری

با استفاده از تابع colormap می توان رنگ های شی را تغییر داد. همچنین می توان خطوط شکل را محو کرد تا واقعی تر به نظر بیاید.

p.FaceAlpha = 1;           % remove the transparency
p.FaceColor = 'interp';    % set the face colors to be interpolated
p.LineStyle = 'none';      % remove the lines
colormap(copper)           % change the colormap
نمایش شکل های سه بعدی در نرم افزار متلب 5

اضافه کردن نور

برای اینکه جسم سه بعدی واقعی تر به نظر بیاید، می توان نوری را به آن جسم تاباند.

l = light('Position',[-0.4 0.2 0.9],'Style','infinite')

با تایپ l در Command Window می توان مشخصات نور تعریف شده را مشاهده کرد.

l = 
  Light with properties:

       Color: [1 1 1]
       Style: 'infinite'
    Position: [-0.4000 0.2000 0.9000]
     Visible: on

  Show all properties
lighting gouraud
نمایش شکل های سه بعدی در نرم افزار متلب 6

این ویژگی‌های شی پچ بر قدرت نور و خواص بازتابی جسم تأثیر می‌گذارد:

  • AmbientStrength – قدرت نور محیط را کنترل می کند
  • DiffuseStrength – میزان انتشار نور را کنترل می کند
  • SpecularStrength – میزان نور منعکس شده را کنترل می کند
  • SpecularExponent – میزان سختی یا نرمی نور منعکس شده را کنترل می کند
  • SpecularColorReflectance – نحوه محاسبه رنگ منعکس شده را کنترل می کند.

می توان این ویژگی ها را به صورت جداگانه تنظیم کرد. همچنین برای استفاده از این ویژگی‌ها با استفاده از مقادیر از پیش تعیین‌شده که ظاهر فلزی (Metal)، براق (Shiny) یا کدر (Dull) را ایجاد می کند، می توان از دستور Material استفاده کرد.

material shiny
تنظیم ماده برای نمایش شکل های سه بعدی در نرم افزار متلب 7

با استفاده از ویژگی Position، می توان موقعیت نور را تنظیم کرد. این موقعیت در مختصات کارتزین یعنی به صورت x، y، z تعریف می شود.

l.Position = [-0.1 0.6 0.8]
تنظیم نور شکل های سه بعدی در نرم افزار متلب
l = 
  Light with properties:

       Color: [1 1 1]
       Style: 'infinite'
    Position: [-0.1000 0.6000 0.8000]
     Visible: on

  Show all properties
آیا این مطلب را می پسندید؟
https://cafemechanic.ir/?p=1421
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
ادمین کافه مکانیک
مطالب بیشتر
برچسب ها:

نظرات

0 نظر در مورد نمایش شکل های سه بعدی در نرم افزار متلب

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هیچ دیدگاهی نوشته نشده است.