Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic hazır kodlar » Animasyon Programı
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Internet Bağnatısını Kontrol Etmek

Yazar: Ver 1.0
Özellikleinternet tabanlı çalışan programlar yazarken aklımıza ilk gelmesi gereken sorun client bilgisayar da internet bağlantısı aktif değilken programımızın çalıştırılması durumudur. Zira internet bağlantısı için kontrol koymadığınız bu tarz bir programda hiçde kullanıcı dostu olmayan hata mesajları ile karşılaşmanız olasıdır.



Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 5411
Yayın Tar:18.12.2005
Yazar : yilmazgm
Hit :3475

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Krank-Biyel Mekanizması Animasyon Programı


Krank - Biyel Mekanizmasının Animasyonunu Yapan Program    
Krank Biyel mekanizması dönme hareketini Doğrusal harekete çeviren veya Doğrusal hareketten dönme hareketi elde eden bir sistemdir. Mesela otomobil motorlarındaki pistonlar gibi.

Formül





s = r( 1 - cos (A) ) - ( r / (L * 2) ) * r * sin (A)^2

denklemde ikinci - işareti yerine + işareti konulursa dönme yönü değişir. Şimdi bu formülü kullanarak değişken krank ve biyel değerlerinde bir animasyon programı yapalım.

Program Nesneleri ve Ayarları



Nesneler ve Ayarları :

(PictureBox)
Name = ekran
Backcolor = mavi ayarlayın.
AutoRedraw = True
Width= 10095
Height =  6975

(TextBox) Krank Yarıçapı Değeri İçIn.

(TextBox) Biyel Mesafesi İçIn.

(Timer)
Enabled = False
Interval = 100

(HScroll)
Max = 3
Min = 1
Value = 2

(CommandButton)
Caption = Başla

(CommandButton)
Caption = Durdur
Enabled = False

PictureBoxın sağ üst köşesine gelecek şekilde, pictureboxun içine bir adet (Label)
Name = Label4
ForeColor = AçıkSarı
Caption = Açı = 0

(Line)
Name = Line1
X1 = 0
X2 = 10080
Y1 = 3480
Y2 = 3480
BorderColor = Açıkmavi
BorderStyle = 4

(Line)
Name = Line2
X1 = 3000
X2 = 3000
Y1 = 0
Y2 = 6840
BorderColor = AçıkMavi
BorderStyle = 4

(Line)
Name = Krank
BorderColor = Turuncu
BorderWidth = 10
Visible = False
Konumu Önemli Değil
(Line)
Name = Biyel
BorderColor = Yeşil
BorderWidth = 10
Visible = False
Konumu Önemli Değil

Line nesnelerini picturebox içine koyun. Tüm nesneler ve Ayarları Bu Kadar... Program görünümü aşağıdaki gibi olabilir.



Ekran Geometrisi :



Kullanıcı text1 ve text2 kutucuklarına sırasıyla krank yarıçapı ve biyel uzunluğu değerlerini girerler. Başla butonuna basıldığında önce krankın hareketini tanımlayan çember çizdirilir. Asal eksenin koordinatları içIn yatay ve düşey sabitleri tuttum. Bu şekilde sanal ( 0 , 0 ) noktasını elde ettim.

Const yatay = 300
Const dusey = 348    


Bu değerleri deneme-yanılma metoduyla buldum. Çemberi bu noktaya çizdiririz. Çember rengi beyaz

Ekran.Circle ( yatay , dusey ) , Text1.Text , RGB ( 255, 255 , 255 )    


Krank ve Biyel ilk olarak 0 derecedeki konumlarında yerleştirilirler.. Krank kolu 0 derecede aşağıdaki konumda olur.

krank.X1 = yatay
krank.Y1 = dusey
krank.X2 = yatay + Text1.Text
krank.Y2 = dusey    


Aynı şekilde biyel kolu da aşağıdaki konumdadır.

biyel.X1 = krank.X2
biyel.Y1 = krank.Y2
biyel.X2 = biyel.X1 + Text2.Text
biyel.Y2 = krank.Y2    


Sürekli Açı Değeri Elde Etmek :



Timer nesnesi ile kolayca açı değerleri türetebiliriz. Timer nesnesi sürekli olarak tekrarlı işlemler yapacaktır. Bir sayac değişkeni koyarsak bu değişkenin değeri sürekli artarak gidecektir. Burada Mod operatörünü kullanarak değişkenin belli bir değerde sıfırlanmasını sağlayabiliriz. Mod operatörü matematikteki Mod işine yarar.

açı = açı + 10    


ifadesi ile sürekli 10 ar 10 ar değer arttırırız. Her seferinde bu değişkenin Mod 360 daki değerini elde etmek içIn aşağıdaki işlemi yaparız.

açı = açı Mod 360    


İkisini birleştirelim:

açı = ( açı + 10 ) Mod 360    


Şimdi krankın çember etrafında dönüşünü yaptıralım. Analitik geometriden hatırlanacağı üzere çember üzerindeki herhangi bir noktanın koordinatı

X = R * cos ( A )
Y = R * sin ( A ) ile hesaplanıyordu. Bu iki formül yardımıyla krankın çember üzerindeki noktasını elde edebiliriz. Bilindiği gibi tüm programlama dillerinde açılar Radyan cinsindendir. Bunu Derece cinsine çevirmek içIn pi / 180 ile çarpmak lazımdır. Bunun içIn drc adında bir sabit tanımladım.

Const drc = 3.14159265 / 180

krankx = yatay + ( r * Cos ( aci * drc ))
kranky = dusey - ( r * Sin ( aci * drc ))    


Bu iki değer o an çember üzerindeki hareketli noktanın koordinatlarını verir. Şimdi hareketin özüne gelelim. Krank kolunun bir ucu çember merkezinde sabit diğer ucu da bu hareketli noktadadır. Biyel kolunun bir ucu bu hareketli noktada ve diğer ucu hareketlidir. Bu hareketlilik aslında düşeyde değişmez. Sadece yatayda değişir. Değişim miktarı ne kadardır? S kadar.

Şimdi bu bilgileri yerleştirelim..

krank.X1 = krankx
krank.Y1 = kranky
krank.X2 = yatay
krank.Y2 = dusey
    
biyel.X1 = krankx
biyel.Y1 = kranky
biyel.X2 = s
biyel.Y2 = dusey    


İşte bu kadar. Tüm geometrik ifadeleri nesneler üzerine yerleştirdik. Aşağıda tüm programı bulabilirsiniz.


Const yatay = 300           ' Asal Eksen yatay noktası
Const dusey = 348           ' Asal Eksen dusey noktası
Const drc = 3.141592 / 180  ' Radyan-Derece Dönüşüm Katsayısı
Dim aci As Integer

Private Sub Form_Load()
    ekran.Scale (0, 0)-(1004, 692)
    aci = 0
End Sub

Private Sub Command1_Click()
    ekran.Cls
    aci = 0
    
    ' Boyut Kontrolleri
    If Text1.Text < 40 Or Text1.Text > 200 Then
        MsgBox "Krank Yarıçapı değerini 40 ile 200 arasında Girin", vbInformation, "Boyut Hatası"
        Exit Sub
    End If
    
    If Text2.Text < (Text1.Text * 2.2) Or Text2.Text > 500 Then
        MsgBox "Biyel kolu krank yarıçapının 2.2 katından az ve 500'den büyük olamaz.", vbInformation, "Boyut Hatası"
        Text2.Text = Fix(Text1.Text * 2.2) + 1
        Exit Sub
    End If
    
    ' ekrana krank çemberi çiziliyor...
    ekran.Circle (yatay, dusey), Text1.Text, RGB(255, 255, 255)
    
    ' krank ayarı yapılıyor...
    krank.X1 = yatay
    krank.Y1 = dusey
    krank.X2 = yatay + Text1.Text
    krank.Y2 = dusey
    krank.Visible = True
    
    ' Biyel ayarı yapılıyor...
    biyel.X1 = krank.X2
    biyel.Y1 = krank.Y2
    biyel.X2 = biyel.X1 + Text2.Text
    biyel.Y2 = krank.Y2
    biyel.Visible = True
    
    ' Bilgi Girişi Kapatılıyor..
    Text1.Enabled = False
    Text2.Enabled = False
    Command2.Enabled = True
    Command1.Enabled = False
    
    Timer1.Enabled = True
    
End Sub

Private Sub Command2_Click()
    ' İşlem Durduruluyor...
    Timer1.Enabled = False
    
    Text1.Enabled = True
    Text2.Enabled = True
    Command1.Enabled = True
    Command2.Enabled = False
    
End Sub

Private Sub HScroll1_Change()
    ' Yatay kaydırma çubuğu ile Timer nesnesinin interval özelliği kontrol ediliyor...
    Label3.Caption = "Hız (" & HScroll1.Value & "/3) :"
    Timer1.Interval = (4 - HScroll1.Value) * 50
End Sub

Private Sub Timer1_Timer()
    ' Açı değeri 10 luk birimlerde artacak...
    aci = (aci + 10) Mod 360
    Label4.Caption = "Açı : " & aci
    
    ' Formül karışmasın diye iki değişken daha tanımladım...
    r = Text1.Text
    L = Text2.Text
    
    s = (yatay + Text1.Text + Text2.Text) - (r * (1 - Cos(aci * drc)) + (r ^ 2 / (L * 2)) * Sin(aci * drc) ^ 2)
    
    ' Krank Kolunun Çember Üzerindeki Temas Noktası Hesaplanıyor..
    krankx = yatay + (r * Cos(aci * drc))
    kranky = dusey - (r * Sin(aci * drc))
    
    ' Krank Kolu Çiziliyor...
    krank.X1 = krankx
    krank.Y1 = kranky
    krank.X2 = yatay
    krank.Y2 = dusey
    
    ' Biyel Kolu Çiziliyor...
    biyel.X1 = krankx
    biyel.Y1 = kranky
    biyel.X2 = s
    biyel.Y2 = dusey
          
End Sub    
iyi calismalar
arkadaslar




Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin