PDA

View Full Version : رسم شکل هندسی



Felony
جمعه 11 دی 1388, 18:07 عصر
:لبخندساده:سلام ،

کسی سورسی داره که شکل هندسی زیر رو با حلقه رسم کنه ؟ ( برای استفاده در یک برنامه برای تست کارت گرافیک میخوام که قراره این شکل رو به صورت 3بعدی با OpenGL رسم کنه و درصد بازدهی کارت گرافیک رو با معیارهای خودش مشخص کنه ) .

برنامه رو با دلفی نوشتم ولی چون اولین برنامه در زمینه گرافیک با OpenGL من بود کمی الگوریتم هاش مشکل داره و زیادی از گرافیک کار میکشه تا جایی که دما از 43 به 67 رسید ! حالا میخوام با VB تست بزنم ببینم مشکل از الگوریتم من هست یا از ضعف دلفی و VB درر کارهای گرافیکی که احتمال زیاد از الگوریتم من هست .


http://barnamenevis.org/forum/attachment.php?attachmentid=41917&stc=1&d=1262358221

ممنون .

parselearn
جمعه 11 دی 1388, 23:20 عصر
حلش كردم




Private Sub Command1_Click()
Me.Cls
n = 40
wh = ((Me.Width / 2) / n) - 30
h1 = (Me.Height / 2)
w1 = (Me.Width / 2)

For i = 0 To n
h = ((Me.Height / 2) / n) * i
Me.Line (w1, h)-(w1 + (i * wh), h1), vbBlack
Me.Line (w1, h)-(w1 - (i * wh), h1), vbBlack
m = CInt(Replace(CStr(i - n), "-", ""))
h = (Me.Height / 2) + ((Me.Height / 2) / n) * i
Me.Line (w1, h)-(w1 + (m * wh), Me.Height / 2), vbBlack
Me.Line (w1, h)-(w1 - (m * wh), Me.Height / 2), vbBlack
Next i
End Sub
-------------------------------------------------------------------
Private Sub Command2_Click()
End
End Sub
-------------------------------------------------------------------
Private Sub Form_Load()
Command1_Click
End Sub

Felony
شنبه 12 دی 1388, 03:49 صبح
Me.Cls
n = 40
wh = ((Me.Width / 2) / n) - 30
h1 = (Me.Height / 2)
w1 = (Me.Width / 2)

For i = 0 To n
h = ((Me.Height / 2) / n) * i
Me.Line (w1, h)-(w1 + (i * wh), h1), vbBlack
Me.Line (w1, h)-(w1 - (i * wh), h1), vbBlack
m = CInt(Replace(CStr(i - n), "-", ""))
h = (Me.Height / 2) + ((Me.Height / 2) / n) * i
Me.Line (w1, h)-(w1 + (m * wh), Me.Height / 2), vbBlack
Me.Line (w1, h)-(w1 - (m * wh), Me.Height / 2), vbBlack
Next i
ممنون ، من دنبال اون قسمت قرمز شده در کد بودم که بتونم تعداد خط ها رو مشخص کنم و کار بیشتری از گرافیک بکشم ، ممنون .