PDA

View Full Version : محاسبه ی حجم بین دو سطح رسم شده



Reza_eric
سه شنبه 28 بهمن 1393, 20:12 عصر
با عرض سلام
خواهشمندم در ارتباط با موضوع زیر راهنمایی بفرمایید . با تشکر فراوان

من دو دسته نقاط از x,y,z را به صورت ماتریس های ستونی در متلب وارد کرده ام . حال می خواهم هر دوی این سطوح را با هم رسم کرده و حجم بین این دو سطح را محاسبه کنم ،
در حال حاضر می توانم هر کدام از این دسته نقاط را با دستور sftool وارد محیط سه بعدی کرده و نقاط یک سطح را در کنار هم ببینم و شکل سطح مورد نظر تنها با کمک نقاط وارد شده قابل تشخیص است اما سطح ( رویه ) مورد نظر به درستی و در اطراف این نقاط رسم نمی شود . در واقع تنها نقاط به درستی دیده می شوند و رویه ی مورد نظر من در اطراف این نقاط رسم نمی شود . از طرفی باید هر دو سطح با هم و در یک محیط سه بعدی رسم شوند و در آخر حجم بین این دو سطح باید محاسبه شود .
البته حتی اگر نتوان دو سطح را در کنار هم ترسیم کرد ، مساله ی مهم همان محاسبه ی حجم بین این دو سطح ناشی از دو دسته نقاط است .

golbafan
سه شنبه 28 بهمن 1393, 20:22 عصر
سلام
اگر سطح شما مسطح نباشد باید انتگرال دوگانه توابع رو از هم کم کنید

rahnema1
سه شنبه 28 بهمن 1393, 20:46 عصر
ابتدا باید نقاط را مثلث بندی کنید که از هر دسته نقطه یک سطح بدست بیاد بعد اون دو سطح را به هم بچسبانید تا حجم تو خالی ایجاد بشه بعد هم حجمش بدست بیاد دقیقا تو متلب نمیدونم کجا هست اما میتونید از نرم افزار meshlab که رایگانه جهت ایجاد سطوح سه بعدی یا mesh استفاده کنید

Reza_eric
جمعه 01 اسفند 1393, 21:16 عصر
سلام
اگر سطح شما مسطح نباشد باید انتگرال دوگانه توابع رو از هم کم کنید

متاسفانه من تابعی ندارم ، دو دسته ی سه تایی از نقاط وجود دارند که دو سطح رو ایجاد کرده اند . این دو دسته نقطه را به کمک فایل note وارد نرم افزار کرده ام .

Reza_eric
جمعه 01 اسفند 1393, 21:34 عصر
ابتدا باید نقاط را مثلث بندی کنید که از هر دسته نقطه یک سطح بدست بیاد بعد اون دو سطح را به هم بچسبانید تا حجم تو خالی ایجاد بشه بعد هم حجمش بدست بیاد دقیقا تو متلب نمیدونم کجا هست اما میتونید از نرم افزار meshlab که رایگانه جهت ایجاد سطوح سه بعدی یا mesh استفاده کنید

در ارتباط با معرفی نرم افزار ممنون ، از دستور mesh استفاده کرده ام اما بعد از آن باید از دستور interp2 برای رسم استفاده کنم اما با مشکل روبه رو هستم چون باید بردارها monotonic باشند . خواهشمندم در صورت امکان راهکاری برای این موضوع در نرم افزار متلب معرفی کنید .


>> [A B] = meshgrid(Amin:dA:Amax , Bmin:dB:Bmax) ;

>> C = interp2(X,Y,Z,A,B) ;

??? Error using ==> interp2 at 180

X and Y must be monotonic vectors or matrices produced

by MESHGRID.
که در این جا X , Y نقاطی هستند که هر کدام از آن ها به صورت جداگانه و در یک فایل note به صورت ماتریس ستونی به نرم افزار وارد شده اند . اما هیچ کدام از آن دو دارای داده های صعودی یا نزولی نیستند و من نمی توانم هر دوی آنها را صعودی یا نزولی کنم چون قطعا ترتیب سه تایی گفته شده به هم می ریزد .

rahnema1
جمعه 01 اسفند 1393, 22:18 عصر
نمیدونم نقاط شما منظم هستند یا نامنظم. اگر نامنظم هستند فکر نکنم از روش شما بشه استفاده کرد. در صورت تمایل میتونید فایل rar را آپلود کنید