mayhemious
Administrator
Karma: 70
Offline
Cinsiyet: 
Mesaj Sayısı: 1006
mayhem mayhemious
|
 |
« : 25 Eylül 2008, 18:52:28 » |
|
Formunuza EKRAN isminde bir picturebox ve cmdCiz isminde command buton ekleyin kodları olduğu gibi yapıştırın
Option Explicit
Dim h As Long, V As Long ' Ekrandaki konum değişkenleri Dim XX As Double, YY As Double, ZZ As Double ' Denklemdeki X,Y ve Z değeri Dim TX As Integer, TY As Integer, TZ As Integer Dim k As Integer Dim hh, x, y, z Const E = 2.7182818281 Const pi = 3.14159265358
Private Sub cmdciz_Click() k = 400 ' Zoom Değişkeni hh = 0.3 ' Çizim Hassasiyeti Değişkeni. Pixel Adımlarını Belirler. TX = 0 ' X yönü Bakış Açısı TY = 30 ' Y yönü Bakış Açısı TZ = 90 ' Z yönü Bakış Açısı ekran.Cls YY = -3 For XX = -3 To 3 Step hh YY = -3 DenklemAl IzdusumHesapla ekran.PSet (h, V) For YY = -3 To 3 Step hh DenklemAl IzdusumHesapla ' Ekran Sınırları Kontrol Edilir. If Not (h > ekran.Width Or V > ekran.Height Or h < 0 Or V < 0) Then ekran.Line -(h, V), RGB(255, 0, 0) DoEvents End If Next YY Next XX For YY = -3 To 3 Step hh XX = -3 DenklemAl IzdusumHesapla ekran.PSet (h, V) For XX = -3 To 3 Step hh
DenklemAl IzdusumHesapla ' Ekran Sınırları Kontrol Edilir. If Not (h > ekran.Width Or V > ekran.Height Or h < 0 Or V < 0) Then ekran.Line -(h, V), RGB(0, 0, 255) DoEvents End If Next XX Next YY End Sub
Sub DenklemAl() ZZ = Sin(XX) + Cos(YY) ' Buraya abidik gubidik denklemler yazılabilir. End Sub
Sub IzdusumHesapla() ' X, Y ve Z için yatay ve düşey nokta bulunur. x = XX * k ' Zoom Değeri Kadar Genişletilir. y = YY * k z = ZZ * k h = x * Cos(pi / 180 * TX) + y * Cos(pi / 180 * TY) + z * Cos(pi / 180 * TZ) + ekran.Width / 2 V = 1 * (0 - x * Sin(pi / 180 * TX)) - y * Sin(pi / 180 * TY) - z * (pi / 180 * TZ) + ekran.Height / 2 End Sub
Private Sub Form_Load() With ekran .BackColor = RGB(256, 256, 256) .Height = 4800 .Width = 6400 .AutoRedraw = True End With
cmdCiz.Caption = "&Çiz" End Sub
|