![]() | |
| | #2 (permalink) |
| Ceviz Lordu Üyelik Tarihi: 12/2006 Yer: İstanbul (Avrupa Yakası)
Mesaj: 127
|
Abicim ben bu kodları MCK Soft KodBank 2.9 içeriğinden buldum eğer istersen onu da bir ara buradan upload eder linkini koyarım buraya (ama rapidden :] ) kodlar şöyle abi; Kod: 'Visual Basic de Grafik İşlemleri(İlk Programlarımız) 1 Line (Çizgi) : Verilen koordinatlar arasına çizgi çizmek için kullanılır. Kullanılması : Line (x1,y1),(x2,y2) Örnekler : Private Sub Command1_Click() x1=5 y1=100 x2=500 y2=900 Line (x1,y1)-(x2,y2) End Sub Line Parametreleri: Renk : Çizimi renklendirmek için kullanılır. Kullanılması : Line (x1,y1),(x2,y2),Renk Renk kısmında Rgb(r,g,b) komutu kullanılmıştır. Daha ileride anlatılacaktır. Şu anlık r = Kırmızı oranı (0-255) g = Yeşil oranı (0-255) b = Mavi oranı (0-255) Örnekler : Private Sub Command1_Click() x1=5 y1=100 x2=500 y2=900 Line (x1,y1)-(x2,y2),rgb(200,50,50) End Sub B : Kare çizmek için kullanılır Kullanılması : Line (x1,y1),(x2,y2),,B Örnekler : Private Sub Command1_Click() x1=5 y1=100 x2=500 y2=900 Line (x1,y1)-(x2,y2),,B End Sub BF : İçi dolu kare çizmek için kullanılır Kullanılması : Line (x1,y1),(x2,y2),,BF Örnekler : Private Sub Command1_Click() x1=5 y1=100 x2=500 y2=900 Line (x1,y1)-(x2,y2),,BF End Sub Kod: 'Visual Basic de Grafik İşlemleri(İlk Programlarımız) 2 Line komutundaki parametreler bir arada kullanılabilirler. Kullanılması : Line (x1,y1),(x2,y2),Renk,BF Örnekler : Private Sub Command1_Click() x1=5 y1=100 x2=500 y2=900 Line (x1,y1)-(x2,y2),rgb(20,20,255),BF End Sub Circle (Daire) : Verilen koordinatları merkez kabul sayarak verilen yarıçapta bir daire çizilmesini sağlar. Bu dairenin rengini belirleme parametresi mevcuttur. Kullanılması : Circle (x1,y1),r,Renk Örnekler : Private Sub Command1_Click() X1 = 250 Y1 = 200 r = 180 Circle (X1, Y1), r, RGB(250, 20, 20) End Sub Pset (Nokta Koymak) : Verilen koordinata nokta konulmasını sağlar. Kullanılması : Pset (x1,y1),Renk Örnekler : Private Sub Command1_Click() X1 = 250 Y1 = 200 Pset (X1,Y1),rgb(255,0,0) End Sub Point (Renk Okuma) : Verilen koordinatlarındaki rengin okunmasını sağlar. Kullanılması : Renk=Point (x1,y1) Örnekler : Private Sub Command1_Click() X1 = 5 Y1 = 100 X2 = 500 Y2 = 900 Line (X1, Y1)-(X2, Y2), , BF Renk = Point(50, 50) MsgBox Renk End Sub Kod: Z = F( X , Y ) türünden 3 boyutlu fonksiyonların grafiğini çizen program. Zoom ve Bakış Açısı ayarlaması da mevcut. FORM NESNELERİ VE AYARLARI -------------------------------------------------------------------------------- İlk önce basit bir çizim için gereken nesneleri ekleyelim. picturebox : -------------- name = ekran backcolor = beyaz height = 4800 width = 6400 AutoReDraw = true command button : --------------------- name= cmdCiz caption = &Çiz Program içerisinde belirlediğimiz bir fonksiyonu butona basıp çizdireceğiz. Bu fonksiyon : Z = sin( X + Y ) fonksiyonu olsun. Fonksiyonun çizim aralığı -3 < X < 3 ve -3 < Y < 3 olsun. 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 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 Görüldüğü gibi önce X düzlemleri sonra da Y düzlemleri çizildi ve 3 boyutlu bir grafik oluştu. Kodlardaki DoEvents ifadesini kaldırarak daha hızlı bir sonuç elde edebilirsiniz. Bu ilk giriş kodlarında zoom ayarları ve çizim hassasiyeti değişkenleri sabit. Bunu programın çalışması sırasında değiştirmek istiyebiliriz. Bu durumda bir ComboBox ile her iki değişken için seçenekler listesi hazırlayabiliriz. Ayrıca çizimde kullanılan renkleri de değiştirebiliriz. Ekran bakış açıları TX,TY ve TZ için ayrı bir nesne düşündüm: ScrollBar nesnesi. Yatay veya düşey farketmez. Program pencerenizin tasarımına göre istediğinizi seçebilirsiniz. 3 adet kullanmanız gerekir. X,Y ve Z açıları için. Bunların ayarları aşağıdaki gibi olabilir : min = 0 ' Alabileceği En Küçük Değer max = 359 ' Alabileceği En Büyük Değer SmallChange = 1 ' Oklara Basılınca Değişim Değeri LargeChange = 5 ' Çubuğun Boş Alanına Tıklayınca Değişim Değeri value = 0 ' başlangıç değeridir. Sırasıyla 0 - 30 ve 90 vermenizi öneririm. Ayrıca birer adet label kullanarak scrollbar nesnelerinin değerleri de kullanıcıya gösterilebilir. Hangi açı değerinde olduğumuzu anlamak için : Private Sub scrollX_Change() label1.caption = scrollX.Value TX = scrollX.Value cmdCiz_click End Sub Bu şekilde 3 adet açı değeri için label ve scrollbar nesnelerini kullanarak çizimin açılarını da değiştirebiliriz. UYARI : Matematikten hatırlarsanız bazı durumlarda denklemler Tanımsız oluyordu. Mesela payda sıfır olursa falan. Bir denklem yazarken bunu unutursanız tanımsızlık anında program kırılır (break). O noktayı atlatın veya 0.01 gibi bir sayıyla paydayı toplatın. Örn : " 1 / XX " yerine " 1 / (XX + 0.01) " olabilir. Bu program içerisinde tek yapamadığım şey kullanıcının denklemini işleyebilmek. Kullanıcı değişik tipte denklemler girebilir. Bunu String işlemleri ile ayıklamak oldukça zor olur. Bu konudaki fikirlerinizi iletirseniz sevinirim. Gökhan UZUN Örnek Projeyi İndirmek İçin www27.brinkster.com/ugokhan/programlar/kaynakkod.htm ' anlatımlı :D selametle.
|
| | |
| | #4 (permalink) |
| Silversword Üyelik Tarihi: 07/2003 Yer: Antalya
Mesaj: 1,395
|
vb6 için de olanın adı studio sorularınızda .net için belirtmezseniz herkes en iyi bildiğine göre cevap vercektir..net de üzerine grafik çizeceğin kontrolün adından sonra kontrolünadı.creategraphics demen yeterli . yı koyduktan sonra sana çizim araçlarını sunacaktır. Ayrıntılı bilgi için msdn e bakabilirsin
__________________ ||||Revlis||||| |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Registry işlemleri | kokobill | C / C++ | 1 | 20/05/2007 16:01 |
| C de dosya işlemleri | kejya | C / C++ | 19 | 14/05/2007 03:26 |
| C# resim işlemleri | ortug | C# | 1 | 21/11/2006 14:27 |
| ASP de dosya işlemleri | tuncercetinkaya | ASP | 5 | 14/02/2006 12:02 |
| mail işlemleri | sadroalin | ASP | 1 | 17/10/2004 23:54 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |