Bölüm 6

6. ÇİZİM İŞLEMLERİ3
6.1. 2 Boyutlu Eğri Çizimi
x ve y vektörleri ayni boyutta ise bu vektörleri ekrana çizdirmek için plot(x,y) komutu
kullanılır.
A =[ 7 2 5 ];
B =[ 5 4 8 ];
plot(A,B);
İstenildigi takdirde çizilen eğri düz çizgi olarak değil de farklı karakterlerle çizdirilebilir. Bunlar
için ise yukarida gösterilen nokta (.), artı (+), yıldız (*), yuvarlak (o) ve x karakterleri kullanılabilir.
Bu karakterleri plot() komutu içerisinde şu şekilde kullanılabilir:
plot(A,B,’+’);
Çizilen egrinin rengi de yukarida gösterilen kisaltmalarla değistirilebilir. Burada ‘r’ kırmızı
renk (red), ‘g’ yeşil renk (green), ‘b’ mavi renk (blue), ‘w’ beyaz renk (white), ‘c’ camgöbeği (cyan)
ve ‘i’ ise (invisible) olarak kısaltımıştir.
x=0:0.1:3;
y=x.^2;
plot(x,y,’r+’);
grid on; % Grafik arka yüzünün ölçekli olarak gösterilmesini sağlar.
3
http://web.itu.edu.tr/kents/matlab.pdf
30
Birden fazla eğriyi üstüste çizdirmek için hold on komutu kullanılabilir. Çizim işlemleri
bittikten sonra tekrar hold off komutu ile sadece bir pencereye bir grafik çizidirilmesi sağlanabilir.
t=0:0.5:10;
x=sin(t);
y=cos(t);
plot(t,x,'r+');
hold on;
plot(t,y,'b*');
xlabel('saniye');
% x ekseninin başlığı
ylabel('x=sint(t) ve y=cos(t)'); % y ekseninin başlığı
hold off;
Bir pencerede birden fazla grafiği yanyana veya altalta farklı figürler oalrak görmek için
subplot komutu kullanılır.
subplot(M,N,P);
M: Grafik penceresindeki satır sayısı,
N: Grafik penceresindeki sütun sayısı,
P: Grafik penceresinde hangi grafik olduğunu ifade eder.
x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
y3=exp(-x);
subplot(1,3,1);plot(x,y1);title('sin(x)');
subplot(1,3,2);plot(x,y2);title('cos(x)');
subplot(1,3,3);plot(x,y3);title('exp(x)');
31
6.2.
3B Eğri Çizimi
plot3(x,y,z) komutu ile aynı boyuttaki x, y, z vektörlerinin 3 boyutlu çizgisel grafiği oluşturulur.
Aşağıda heliks çizimi programı verilmiştir:
t=0.1:0.01:20*pi;
x=cos(t);
y=sin(t);
z=t.^3;
plot3(x,y,z);title('helix');
grid on;
3B Yüzey Çizimi4
6.3.
Matlab x-y düzlemindeki ızgaralı bir dikdörtgen yapı üzerindeki noktaların z koordinatlarının
yüzeyini tanımlar. Birbirine bitişik noktaların düz çizgilerle birleştirilmesi sonucunda ise bir yüzey
grafiği oluşur.
Matlab farklı biçimde yüzey grafikleri oluşturabilir. Bunlardan ağ eğrileri yalnızca tanımlanan
noktaları birleştiren çizgiler yoluyla renklendirilen ızgara tel çerçeve biçimi yüzeylerdir. Yüzey
eğrileri hem bağlantı yüzeyini hem de yüzeyi renkli gösterir.
İlk olarak meshgrid fonksiyonu ile ortam gridlenerek tanımlanabilir. Dikdörtgen [0,4]×[0,3]
parçalara bölünürse ve genişliği 1yüksekliği 0.5 olan grid aralığını tanımlayan x ve y vektörlerinin
tanımlanması gerek.
x=0:4;
y=0:0.5:3;
[X,Y]=meshgrid(x,y);
4
https://ekblc.files.wordpress.com/2013/11/matlab-2.pdf
32
Böylece 35 noktadan oluşan 7×5 matris elde edilir. X matrisi x koordinatlarını y matrisi y
koordinatlarını içerir. f(x,y)=3x-2y fonksiyonunu çizelim. z koordinatlarını oluşturan Z
Z=3*X-2*Y;
olarak tanımlansın. Sonuç olarak mesh fonksiyonu tanımlı yüzeyin çizimi için kullanılır
mesh(X,Y,Z);
title('f(x,y)=3x-2y yüzeyi')
Aynı örnekte mesh fonksiyonu yerine surf komutu kullanılırsa 3B noktalar ağ şeklinde değil de yüzey
şeklinde gösterilecektir.
surf(X,Y,Z);
title('f(x,y)=3x-2y yüzeyi')
Örnek: f(x,y)=x2y-2y fonksiyonunu [-2,2]×[-1,1] tanımlı aralıkta gösterelim.
Kenar uzunluğu 0.1 olan karelerden oluşan bir grid tanımlanması gerek.
[X,Y]=meshgrid(-2:0.1:2,-1:.1:1);
z yüzeyinin tanımı:
Z=(X.^2).*Y-2*Y;
Yüzeyin çizilmesi:
surf(X,Y,Z)
title('f(x,y)=x^2y-2y Yüzeyi')
33
Örnek: Yarıçapı r olan bir küre R3 ile merkezlenmiş olsun. Ve genelleştirilmiş ifadesi ve tanım aralığı,
r(a,b)=(rsin(a)cos(b), rsin(a)sin(b), rcos(a)) 0 < f < pi, 0 < b <2pi. Bu birim küreyi çizdirelim.
İlk olarak a ve b meshgrid fonksiyonunun parametreleri olacaktır.
[a,b]=meshgrid(0:pi/20:pi, 0:pi/10:2*pi);
%r = 1 için.
X=sin(a).*cos(b);
Y=sin(a).*sin(b);
Z=cos(a);
% Sonuçta küreye yakın bir sonuç elde edilir.
surf(X,Y,Z)
title('Birim küre');
6.4.
Konturlama ( Eğri Seviye Değerleri )
Seviye eğrilerinin gösterilmesi için contour komutu kullanılmaktadır.
Örnek: f(x,y)=x2-y2 fonksiyonunun seviye eğrilerini çizdiriniz.
[X,Y]=meshgrid(-1:.1:1);
Z=X.^2-Y.^2;
contour(X,Y,Z);
title(' f fonksiyonunun seviye eğrileri');
34
Konturlarin değerlerini elde etmek için;
[C,h]=contour(X,Y,Z);
clabel(C,h);
Grafik ve Konturlarin beraber çizdirilmesi için surfc komutu kullanılır.
surfc(X,Y,Z)
title('f(x,y) fonksiyonu ve kontur çizgileri');
35
3 boyutlu kontür çizmek için de contour3 komutu kullanılır.
contour3(X,Y,Z)
title('f(x,y) 3B kontur çizgileri')
Örnek: f(x,y)=xexp(-x2-y2) fonksiyonunun tüm farklı 3B grafiklerini bir pencerede farklı grafiklerde
gösterilecek şekilde ayarlayınız.
[X,Y]=meshgrid(-2:0.1:2);
Z=X.*exp(-X.^2-Y.^2);
subplot(2,3,1);plot3(X,Y,Z);title('plot3 komutu');
subplot(2,3,2);mesh(X,Y,Z);title('mesh komutu');
subplot(2,3,3);surf(X,Y,Z);title('surf komutu');
subplot(2,3,4);surfc(X,Y,Z);title('surf3 komutu');
subplot(2,3,5);contour(X,Y,Z);title('contour komutu');
subplot(2,3,6);contour3(X,Y,Z);title('contour3 komutu');
36