Grafik Çizme 3 (3D Plot)

DERS 7 : GRAFİK ÇİZME 3 (3D PLOT)

3 boyutlu grafik çizmek için,öncelikle 3 boyutlu grafikler için matematik bilgimizin olması gerekiyor.Ya da niçin üç-boyutlu grafik çizdirmemiz gerektiğini bilmemiz gerekiyor.

>>help plot3

Örneğin,x-eksenine açı değerlerini,y-eksenine cos(x) grafiğini,z-eksenine de sin(x) grafiğini çizelim. Öncelikle y ve z eksenlerini değerlendirirsek,cos(x) ve sin(x) grafiği iki boyutlu halde bize,çember grafiği belirtir.x-y-z eksenlerini üç boyutlu halde çizmek için :
plot(x,y,z) ile çizdirilir.

%3D grafik çizimi
%linspace komutu ile x açı değerinin
%aralığını belirtiyoruz.
x = linspace(0,10*pi,1000);
y = cos(x);
z = sin(x);
plot3(x,y,z)
grid
xlabel('açı'), ylabel('cos(x)') ,zlabel('sin(x)')
title('ASpring')

 
                                     

*** Yukarıdaki grafiği animasyon olarak çizdirmek için comet3(x,y,z) fonksiyonunu kullanabilirsiniz. Eğer iki boyutlu grafikleri animasyon olarak çizmek için comet fonksiyonu kullanılabilir.
** üç boyutlu koordinat sisteminde ,grafik çizerken,sağ el kuralı dikate alınır.
( x = => y = => z )

Yüzey Grafikleri Çizme :
Yüzey çizme işlemi girilen veriler ile oluşturulur.(Surface plots) Yüzey çizmek için iki farklı fonksiyonu inceleyeceğiz.(mesh plot,surf plot)

1)Mesh Plot :
Mesh plot çizmek için farklı yöntemler vardır.mxn boyutunda yani iki boyutlu matris kullanabiliriz.Bu uygulamada,x ve y ekseni değerleri için mxn boyutundaki matrisi girmedik ancak, x ve y ekseni değerlerinin ikisini de ayrı olarak ürettik.Ve z ekseni değerleri için aşağıdaki değerleri gireceğiz.Şimdi z-ekseni değerlerini girelim :

z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
2, 4, 6, 8, 10, 12, 14, 16, 18, 20;
3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

Ardından sıra, yüzeyi çizme işlemine geliyor.

%x ve y değerleri
x = linspace(1,50,10)
y = linspace(500,1000,3)
% z nin değerleri
z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
2, 4, 6, 8, 10, 12, 14, 16, 18, 20;
3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
%yüzey çizme
mesh(z)
xlabel('x-ekseni')
ylabel('y-ekseni')
zlabel('z-ekseni')
grid on


 

2)Surf Plot :
Surf plot da mesh plot ile benzerdir,ama surf üç-boyutlu renklendirme yapıyor.Kullanım şekli ise mesh ile aynıdır.

>>help surf

mesh(z) komutu yerine surf(z) yazarsak yüzeyi üç boyutlu renklendirerek çizecektir.

>>help meshgrid

 

ÖRNEK 1 : f(x,y) = sin(x)cos(y) ve xÎ[-p , p], yÎ[-p , p]
Bu fonksiyonu 3 boyutlu olarak çiziniz.(meshgrid kullanınız)

»x=-pi:0.1:pi;
»y=-pi:0.1:pi;
»[X,Y]=meshgrid(x,y);
»Z =sin(X).*cos(Y);
»surf(X,Y,Z)


 

  
Matrisleri Görselleştirme ve Colormap :

İlk olarak matris girelim.2x100 boyutunda bir matris aşağıda girilmiştir.
>>mat = [1:100;1:100];
Ardından imagesc fonksiyonunu kullanırsak matris değerlerini otomatik olarak renk ile ölçeklendirir.
>>imagesc(mat);
Bir de colorbar fonksiyonunu kullanırsak renklerin değerini bir ölçek ile gösterir.
>>colorbar


***Farklı renklerdeki colormap komutlarını da kullanabiliriz.
>>imagesc(mat);
>>colormap(gray)

 

>>imagesc(mat)
>>colormap(cool)


*** >>help colormap    >>help hot
Daha fazla ölçekledirme için aşağıdaki komutlar da kullanılabilir.

autumn                      bone               hot
spring                        colorcube      hsv
summer                     cool                pink
winter                        copper           prism
jet                               flag                 white

shading : shading fonksiyonu ile grafiğin görünüşünde değişiklik yapabilirsiniz.


>>help shading

3 çeşit shading komutu vardır.
»shading faceted
»shading flat
»shading interp
                    
                                                                                                                                                                     

contour :
Bu fonksiyon ile 3-boyutlu yüzeylerin 2-boyutlu olarak çizilmesini sağlarız.
>>help contour
contour(X,Y,Z)

%x ve y aralığı tanımladık
x=-pi:0.1:pi;
y=-pi:0.1:pi;
%meshgrid ile x-y tanımladık
[X,Y]=meshgrid(x,y);
%çizilecek grafik
Z =sin(X).*cos(Y);
%3 boyutlu ve 2 boyutlu çizim
%3 boyutlu
hold on
subplot(2,1,1);
surf(X,Y,Z);
shading interp
hold off
%iki boyutlu
hold on
subplot(2,1,2);
%iki boyut için contour kullanırız
contour(X,Y,Z);
colorbar
hold off
colormap(cool)

 

GRAFİKLERİ DÜZENLEME

İlk olarak >>sphere komutunu giriniz ve karşınıza bir figürde küre çıkacaktır.
Edit è bu seçenekten sonra, Axes Properties veya Figure Properties seçeneği ile grafiğinizi düzenleyebilir.Ve grafiğinizin görünüşünü ayarlayabilir,dödürebilir ve kod girmeden daha fazla komut ekleyebilirsiniz.

 

Grafik düzenlendiğinde daha anlaşılır grafikler elde edebiliriz.
Ayrıca Save As à .bmp veya .jpg olarak kaydedebilirsiniz.

kaynaklar : 
MATLAB for Engineers by Holly Moore, Third Edition, and published by Prentice Hall

MIT OpenCourseWare 6.094 Introduction to MATLAB® January




2 yorum: