Programlama dilleri ve veri tabanları ile ilgili ipuçları

12/2/2009 - İki cismin çarpışmasına örneklerle ulaşmak: Örnek1

Kategori: Programming



Merhaba,

Bugünkü yazıda bitirme projeme başlamadan önce yapmam gerektiğine inandığım bir kaç grafiksel örneği paylaşacağım. Aslında çok fazla bir işe yaramasalar da ya da çok amatörce programlar olsa da bazı fikirlerin aklımda canlanması açısından ve size de sunmak açısından güzel örnekler olduklarını düşünüyorum. Kodların bazı kısımlarında bir kaç arkadaşımdan yardım aldığımı da belirtmek isterim. Onlara buradan teşekkür ediyorum. [ Mehmet, Ali ve Onur :D ]


İlk örnek pendulum'a geçişi sağlayabilmek için kendimce tasarladığım bir programdır. Pendulum da bilineceği üzere sarkaç sistemidir. Belli başlı formüllerle hesaplamaları yapılıp frekansı ya da hareket açıları hesaplanır. Programda bu formülleri kullanırken de aynen kağıt üstünde işlem yapar gibi işlem yapmak zorundayız.
http://www.physics-lab.net/applets/simple-pendulum
örneği gerçekten ileri düzey. Benim örneğim biraz daha amatör, sınırlamalar var ilk örnekte örneğin belirli bir noktaya vardığında o noktaya çarpmasını istedim.


/**
 *
 * @author KAYWINSOFT
 */
import java.awt.*;
import java.applet.*;

public class BallMove extends Applet implements Runnable{

    int x_pos = 10;
int y_pos = 100;
int radius = 20;
int y_speed = 1;
Image dbImage;
Graphics dbg;
int appletsize_x = 100;
    int appletsize_y = 100;   
            int x_speed = 1; //X yönünde top hızı
    public void start ()
{

      // define a new thread
      Thread th = new Thread (this);
      // start this thread
      th.start ();

}
    //ilk değişikliklerin yapıldığı yer.
    public void init()
    {
        setBackground (Color.yellow);
    }
    public void run ()
{
     
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

        // Thread doğru olarak çalıştıkça devam et
        while (true)
        {
            // top sınıra yaklaştığında yukarı kaldır
            if (x_pos > appletsize_x - radius)
            {
                // top yönünü değiştirme
                x_speed = -1;
            }
            // top sınırdan uzaklaştığında aşağı indir
            else if (x_pos < radius)
            {
                x_speed = +1;
            }
                    
            if (y_pos > appletsize_y - radius)
            {
                y_speed = -1;
            }
           
            else if (y_pos < radius)
            {
                y_speed = +1;
            }

            //x koordinat değiştirme
            x_pos += x_speed;
                      
                        y_pos += y_speed;

           
            repaint();

            try
            {
               
                Thread.sleep (20);
            }
            catch (InterruptedException ex)
            {
                // do nothing
            }

            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
        }

}
    public void update (Graphics g)
    {
        if (dbImage == null)
        {
            dbImage = createImage (this.getSize().width, this.getSize().height);
            dbg = dbImage.getGraphics ();
        }

                dbg.setColor(Color.YELLOW);
        dbg.setColor (getBackground ());
        dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

        dbg.setColor (getForeground());
        paint (dbg);
        g.drawImage (dbImage, 0, 0, this);
                g.drawLine(x_pos, y_pos, 0,0);
    }
  public void paint (Graphics g)
{
     
      // set color
      g.setColor (Color.red);
     
      // paint a filled colored circle
      g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
    

}
 
}


henüz dosya upload'ı uygun olmadığı için resimlerle idare etmenizi rica edeceğim. Fakat şunu belirteyim, böyle gözlendiğinde cidden baya bir amatörce oluyor.


EkleBunu Sosyal Paylaşım Butonu
Yorum yaz!

<- Son Sayfa :: Sonraki Sayfa ->

Hakkımda

Kategoriler

Arkadaşlarım