Posted: Tue Apr 22, 2008 10:14 pm Post subject: الگودهی خط در OpenGL
الگو دهی خط در OpenGL :
در OpenGL می توان برای رسم خط از خطوطی که پیوسته هم نیستند استفاده کرد . چطور خطوط نقطه چین را روی کاغذ رسم می کنیم در اوپنجی ال هم می توان خطوط نقطه چین رسم کرد . برای رسم باید یک الگو داشته باشیم . یعنی نحوه قطعه قطعه کردن خط را توسط یک الگو مشخص کنیم تا اوپنجی ال بتواند بر اساس آن خط را نقطه چین کند . برای تعیین الگو باید از یک پارامتر از نوع صحیح بدون علامت استفاده کرد .
برای این کار باید از تابع زیر استفاده کنید :
glLineStipple(Glint sfactor,GLushort pattern)
پارامترهای این تابع بصورت زیر است :
Pattern : در این الگو 1 یعنی خط را بکش و 0 یعنی خط را نکش .
Sfactor: یک فاکتور برای مقیاس گیری از الگو هست که تعداد 0 ها و 1 ها را می توانیم با این فاکتور مشخص کنیم .
برای استفاده از تابع فوق قبل از glBegin() خط زیر را اضافه کنید :
مثلا اگر pattern را 7939 بگیرید این الگو خط را بصورت 0001 1111 0000 0011 زیر رسم می کند یعنی بجای صفر ها خالی و بجای یک ها خط می گذارد برای سادگی می توانید از کد مبنای 16 آن هم استفاده کنید . 1F03 اما اگر خیلی دیگر ساده می خواهید کار کنید ماشین حساب ویندوز رو باز کنید و در آن در محیط scientific در محیط bin صفر ویک ها را وارد کنید .
برای فهم کار کد زیر را یک بار بنویسید :
glLineStipple(1,7939);
glEnable(GL_LINE_STIPPLE);
بعد از اینکه خوب متوجه شدید . پارامتر sfactor را به 3 تغییر دهید متوجه می شوید که چه اتفاقی می افتد . الگوی شما باندازه 3 برابر روی خط ظاهر می شود .
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum