Şimdi Ara

Java ile sinüs grafiği çizelim(Applet)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
2
Cevap
0
Favori
2.278
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • package mainpaket;

    import java.applet.Applet;
    import java.awt.*;

    public class MainApplet extends Applet {

    public void init(){

    this.setSize(850,600);

    }

    public void paint(Graphics g){
    double ydegeri1;
    double ydegeri2;
    for(double x=0;x<=5.5;x+=0.1) {

    ydegeri1 = Math.sin(x);
    ydegeri2 =Math.sin(x+1);
    g.drawLine(10+(int)(20*x), 100-(int)(20*ydegeri1), 10+(int)(20*(x+1)), 100-(int)(20*ydegeri2));

    }

    }

    }


    this.setSize(850,600); Burada appletimizin ekran boyutunu ayarladık,this kullanmamızın amacı Applet fonksiyonlarına erişebilmek,yani Applet.setSize(850,600) gibi düşünebilirsiniz.

    X ve Y eksenini düşünelim,mantığı anlayabilmek için
    Java da,x ve y koordinatları ekranın sol en üstünden başlar ve bu şekildedir
    Java ile sinüs grafiği çizelim(Applet)

    Sinüs çiziminin mantığı
    Java ile sinüs grafiği çizelim(Applet)

    Grafiği çizerken bizim muhattapımız x eksenidir,x eksenine göre y değişecektir.
    Yani,x = 1 ise,y = sin(1) olacaktır,mantığımız bu.

    double ydegeri1; // burada double türünde ydegerini tanımladık,matematiksel çizim işlemlerinde int kullanmaktan kaçının.
    ydegeri1 = Math.sin(x); // burada y degerini tanımladık,bakın y degerini x e bağladık.

    for(double x=0;x<=5.5;x+=0.1) // burada x in başlangıç noktasını belirttik,5.5 e kadar dedik(sonuç kodumuzda x i çarpacağımız için 5.5 büyüyecek,küçük gözükmesin. x+=0.1 eğer x+=1 olsaydı ekranda noktalar birleşmeyecek,sinüs grafiği nokta nokta çıkacaktı,x+=0.1 ile pixelleri en ince ayrıntısına kadar kullanarak çizdiriyoruz.

    g.drawLine(10+(int)(20*x), 100-(int)(20*ydegeri1), 10+(int)(20*(x+1)), 100-(int)(20*ydegeri2));

    10+(int)(20*x); 10+ derken aslında x i 10 pixel sağa öteledik,kullanmayabilirsiniz önemli değil
    20*x e gelelim,eğer x i 20 ile çarpmasaydık düz bir çizgi görecektik,sinüs grafiği 1. pixelden 2. pixele atlataktı ve insan gözü bunu algılayamaz,20 ile çarptık ki,x değerlerini pixellerden daha fazla atlatalım,kısacası sinüs grafiğinin boyutunu görebilmemiz için büyüttük.
    x in boyutunu 20 ile çarptık arttırdık,peki y ne olacak ?
    Düzgün bir sinüs grafiği elde etmek için y nin de boyutunu 20 ile çarpmalıyız,20*ydegeri ile y nin de boyutunu arttırdık.

    Ha unutmadan şunu da açıklayayım ( 100- olayı);
    Java dilinde,y ekseni aşağı doğru giderken artar(sol üstten başladığı için) yani geleneksel matematik işlemlerine göre y sinin eksen işareti terstir.

    İşin özü,100-(int)(20*ydegeri1) yerine (int)(20*ydegeri1) yazsaydık sinüs grafiğimiz ekranın en üst sol köşesinden başlacaktı ve grafiği göremeyecektik başına 100- getiriyoruz ki,grafiği 100 birim aşağı öteliyoruz.
    Mantıken 100+ dememiz lazımdı,ancak dediğim gibi Java da y ekseni yukarı doğru değil,aşağı doğru artıyor.

    (int) ise,drawLine fonksiyonu double yazmaya izin vermediği için,son esnada düzgün olarak bulduğumuz double degerlerini,integere çevirdik.

    Sonuç ise
    Java ile sinüs grafiği çizelim(Applet)
    x<=50.5 yaptığımızdaki sonuç;
    Java ile sinüs grafiği çizelim(Applet)



    < Bu mesaj bu kişi tarafından değiştirildi oksygen -- 15 Nisan 2017; 15:50:58 >







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.