تمرین گرافیک کامپیوتری -شماره - 3اسپالین ها در این تمرین پیاده سازی تعدادی از انواع اسپالین ها مورد نظر است که در ادامه توضیح داده می شوند .کاربر باید بتواند اسپالین مورد نظر خود را انتخاب کرده و برنامه ی شما باید نقاط کنترلی و هر ورودی دیگری که برای این اسپالین الزم است را دریافت کند و آن را در یک صفحه ی دو بعدی رسم نماید. وارد کردن نقاط کنترلی از طریق کلیک کردن روی صفحه مانیتور می باشد .توجه کنید که ترتیب نقاط کنترلی همان ترتیب وارد کردن آنها است .خواندن این داده ها از کد یا فایل قابل قبول نیست .تعداد نقاط کنترلی محدودیت ندارد و اسپالین شما باید با ورود هر یک re-draw ،شود. تاکید زیادی بر رابط کاربری است .سعی کنید آن را تا حد ممکن جذاب و قابل استفاده طراحی کنید و در نمایش اسپالین ها از رنگهای مناسب استفاده نمایید. برای این پیاده سازی میتوانید از کتابخانه های OpenGLاستفاده کنید. اسپالین ها .1اسپالین های بزییر )(Bezier Splines در این قسمت پیاده سازی اسپالین های درجه 3الزامیست و به درجات باالتر نمره اضافه تعلق می گیرد .2بی-اسپالین ها ()B-Splines همانطور که می دانید در این قسمت عالوه نقاط کنترلی ،بردار گره ها ( )Knot Vectorنیز برای رسم اسپالین مورد نیاز است که باید از کاربر گرفته شود. بی -اسپالین ها بسته به مولفه های بردار گره چندین نوع هستند و درجه یک بی-اسپالین هم از تعداد مؤلفه های بردار گره مشخص می شود. برای سادگی کار ،شما فقط الزم است بی-اسپالین های یکنواخت و غیر یکنواخ تدرجه (UniformCubic B-Splines)3 را پیاده سازی کنید و درجات باالتر نمره اضافه خواهند داشت .همانطور که می دانید برای یک بی -اسپالین درجه 3بردار گره ها باید 4مؤلفه داشته باشد. .3سطوح بزییر ()Bezier Surfaces سطوح بزییر همانند اسپالین ها باید با دریافت نقاط کنترلی تولید شوند .برای پیاده سازی این سطوح می توانید از کتابخانه های آماده استفاده کنید .برای نمایش این سطوح برنامه شما باید چهار دید متفاوت را به کاربر ارائه دهد که عبارتند از جلو ،چپ ،پایین ،باال. محور z از فضای سه بعدی ،بر صفحه نمایش شما عمود و جهت مثبت آن به بیرون صفحه است .با این توصیف ،چهار دید خواسته شده را به صورت زیر در نظر بگیرید. جلو :دیدن از طرف yهای منفی به سمت yهای مثبت وx = z = 0 چپ :دیدن از طرف xهای منفی به سمت xهای مثبت وy=z=0 باال :دیدن از طرف zهای مثبت به سمت zهای منفی وx=y=0 پایین :دیدن از طرف zهای منفی به سمت zهای مثبت وx=y=0 پروچکشن موازی مد نظر است و نیازی به پروجکشن پرسپکتیو نیست. سطوح شما کافسیت به صورت wireframe باشند ولی رنگ آمیزی کامل سطح نمره اضافه خواهد داشت .چون سطح شما سه بعدی است قسمتهایی از آن می توانند مقابل قسمتهای دیگر قرار بگیرند ،از این رو بهتر است هنگام نمایش سطح روی مانیتور از قسمتهایی شروع کنید که دورتر از نقطه دید شما هستند .بدیهی است که برای هر زاویه دید ترتیب نقاط متفاوت می شود. برای القای سه بعدی بودن (عمق داشتن) سطح می توانید نقاط نزدیکتر به نقطه دید را روشن تر و نقاط دورتر را تاریک تر رنگ آمیزی کنید):(Depth Cueing approach اگر نمایش به صورت wireframe است خطوط اتصال نقاط می توانند رنگ یکی دو نقطه ای که به آن متصل هستند را داشته باشند. اگر صفحه را کامال رنگ آمیزی می کنید صفحات بوجود آمده بین هر چهار نقطه می توانند رنگ یکی از این چهار نقطه را داشته باشند. القای عمق اجباری است اما روش آن الزم نیست آنچه در باال گفته شد باشد. تحویل تمرین تحویل فقط به صورت حضوری است .ضمن اینکه حتما هر دو عضو گروه باید در پیاده سازی این تمرین نقش مؤثر داشته باشند .طبیعتا حضور هر دو عضو هنگام تحویل الزامی می باشد.
© Copyright 2026 Paperzz