ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

الگودهی خط در OpenGL

 
Post new topic   Reply to topic    ParsX.com Forum Index -> گرافيك كامپيوتري
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3007
Location: Tehran

PostPosted: Tue Apr 22, 2008 10:14 pm    Post subject: الگودهی خط در OpenGL Reply with quote

الگو دهی خط در OpenGL :
در OpenGL می توان برای رسم خط از خطوطی که پیوسته هم نیستند استفاده کرد . چطور خطوط نقطه چین را روی کاغذ رسم می کنیم در اوپنجی ال هم می توان خطوط نقطه چین رسم کرد . برای رسم باید یک الگو داشته باشیم . یعنی نحوه قطعه قطعه کردن خط را توسط یک الگو مشخص کنیم تا اوپنجی ال بتواند بر اساس آن خط را نقطه چین کند . برای تعیین الگو باید از یک پارامتر از نوع صحیح بدون علامت استفاده کرد .
برای این کار باید از تابع زیر استفاده کنید :
glLineStipple(Glint sfactor,GLushort pattern)
پارامترهای این تابع بصورت زیر است :
Pattern : در این الگو 1 یعنی خط را بکش و 0 یعنی خط را نکش .
Sfactor: یک فاکتور برای مقیاس گیری از الگو هست که تعداد 0 ها و 1 ها را می توانیم با این فاکتور مشخص کنیم .
برای استفاده از تابع فوق قبل از glBegin() خط زیر را اضافه کنید :
glLineStipple(Glint sfactor,GLushort pattern);
glEnable(GL_LINE_STIPPLE);

مثلا اگر pattern را 7939 بگیرید این الگو خط را بصورت 0001 1111 0000 0011 زیر رسم می کند یعنی بجای صفر ها خالی و بجای یک ها خط می گذارد برای سادگی می توانید از کد مبنای 16 آن هم استفاده کنید . 1F03 اما اگر خیلی دیگر ساده می خواهید کار کنید ماشین حساب ویندوز رو باز کنید و در آن در محیط scientific در محیط bin صفر ویک ها را وارد کنید .
برای فهم کار کد زیر را یک بار بنویسید :
   glLineStipple(1,7939);
   glEnable(GL_LINE_STIPPLE);
بعد از اینکه خوب متوجه شدید . پارامتر sfactor را به 3 تغییر دهید متوجه می شوید که چه اتفاقی می افتد . الگوی شما باندازه 3 برابر روی خط ظاهر می شود .
   glLineStipple(3,7939);
   glEnable(GL_LINE_STIPPLE);
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> گرافيك كامپيوتري All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
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