INTAN CAHYANINGRUM - MAHASISWI PENDIDIKAN MATEMATIKA UPI2011 - @intancynm

Kamis, 13 Desember 2012

Cara Membuat Grafik Trigonometri


Sharing bikin grafik trigonometri: sin x dan cos x


Yang jadi amsalah kan yaaa gimana caranya bikin grafik yang besar.. kalo skalanya sama kaya ukuran pixel canvasnya pasti grafiknya bakalan mini banget, nah ini caranya.. kalian bisa utak atik sendiri:
Yang pertama adalah menyesuaikan titik pusat (0,0) jadi di tengah, dengan cara:
Function Absis(LojikX:Double):Integer;
begin
      result:=Round(LojikX + 300);
end;
Function Ordinat(LojikY:Double):Integer;
begin
      result:=Round(200 - LojikY);
end;
untuk kata absis dan ordinat di atas, bisa disesuaikan dengan kainginan kalian J
untuk angka 200 dan 300, kenapa harus segitu yaaaa?
Nah karena ukuran canvas saya adalah 600x400, maka untuk mencapai tengah-tengahnya kan x nya 300, dan y nya 200.. ini berarti disesuaikan ukuran canvas kalian yah.

nah, selanjutnya adalah membuat sumbu koordinat cartesius..
var i:integer;
begin
   with image1.Canvas do
   begin
   MoveTo(Absis(-270),Ordinat(0));  //sumbu x
   LineTo(Absis(270),Ordinat(0));
Catatan: tidak dari -300 sampai 300 karena saya ingin menyisihkan space, tidak sampai ke ujung banget.

   MoveTo(Absis(0),Ordinat(150));  //sumbuy
   LineTo(Absis(0),Ordinat(-150));
Catatan: tidak dari -200 sampai 200 karena saya ingin menyisihkan space, tidak sampai ke ujung banget

Nah ini yang cukup sulit, membuat grafik sin x, bagaimana kita membentuk grafik sin x yang cukup besar? Di sini saya membuat skala, ukuran dari 0 sampai phi adalah dari 0 sampai 100 (pada sumbu x. Jadi untuk 2phi yaitu di 200 (sumbu x). Is it clear? Jadi 2 phi itu untuk x=200.
Jadi yang tadinya y=sin(i)   dengan i dari -200 sampai 200, jadi y=sin i*2phi/200.
Nah untuk skala ke atasnya, kan nilai maksimum dan minimum sin x itu 1 sama -1 ya? Untuk memperbesar kita ubah aja jadi missal 70 dan -70, kira-kira aja sih biar enak diliat kaya gimana..
Jadi fungsinya berubah y=70 sin i*2phi/200.
Phi itu 3.14 ya ^^
Nah ini fungsi delphinya:

Var i:Real;
begin
   with image1.Canvas do
   begin
   i:=-200;
   while i<=200 do
     begin
     Pixels[Absis(i),Ordinat(70*Sin(i*2*3.14/200))]:=clHITAM;
     i:=i+0.01;
     end;
   end;
end;

Kenapa i selanjutnya memiliki perbedaan 0,01? Itu bebas.. Karena itu pixels yaa, jadi saya ingin jarak tiap titiknya ga terlalu jauh, hampir membentuk garis.. coba teman-teman utak-atik aja J
nah, itu warnanya bebaaaaas :)
Nah untuk fungsi cos x ya sama aja, SELAMAT MENCOBA ^^

2 komentar:

  1. kak program delphi yg trigonometri buat cotangen ada.?
    kalau yg di atas kan sinus dan cosinus

    BalasHapus
    Balasan
    1. ada nilai tangen yg tidak terdefinisi di salah satu titiknya, jadi perlu modifikasi lebih lanjut. Kalau sdr sudah bisa, berbagi ya :D

      Hapus

Silakan meninggalkan komentar ^_^