Volume Objesi

Hacim oluşturmanın üç farklı yolu vardır.


1)Surface'e Kalınlık Değeri Vererek Hacim Oluşturulması : 

Bir yüzeye kalınlık değeri vererek "Volume" objesi oluşturulabilir.

Örnek:

<O T="Surface" Thickness="20">
    <O T="Point" X="0" Y="0" Z="0" />
    <O T="Point" X="10" Y="0" Z="0" />
    <O T="Point" X="10" Y="10" Z="0" />
    <O T="Point" X="0" Y="10" Z="0" />
</O>



2)Line ve Surface Kullanarak Hacim Oluşturulması :

Bir çizgi ve yüzey kullanarak oluşturulur. Çizgi boyunca yüzeylerin art arda konularak oluşmasını sağlar. Çizginin başlangıç ve bitiş noktaları arasını yüzeyler koyarak doldurur.

Burada dikkat edilmesi gereken nokta; yüzeyin isminin, çizginin içinde tanımlanan parametrede değer kısmına yazılmasıdır. (Section kısmı için bkz:Section Objesi)

Örnek:

<O N="yuzey" T="Section">
    <O T="Point" X="0" Y="0" Z="0" />
    <O T="Point" X="10" Y="0" Z="0" />
    <O T="Point" X="10" Y="10" Z="0" />
    <O T="Point" X="0" Y="10" Z="0" />
</O>
<O T="Line">
    <P N="Section" V="yuzey" T="Section" />
    <O T="Point" X="0" Y="0" Z="0" />
    <O T="Point" X="5" Y="0" Z="0" />
</O>



3)İki Farklı Yüzey Kullanarak Hacim Oluşturulması :

Derinlikleri farklı iki farklı yüzeyin bir araya gelerek oluşturduğu bir objedir. Bir hacim tanımlamak istenildiğinde, iki yüzeyin her bir noktasının koordinatları belirlenerek aşağıdaki gibi oluşturulur.

Aşağıda "Volume" Obje kullanarak nasıl 3D obje üretildiği açıkça görülmektedir.

Örnek:

<O T="Volume">
        <O T="Surface" Z="0">
            <O T="Point" X="-5" Y="-5" />
            <O T="Point" X="5" Y="-5" />
            <O T="Point" X="5" Y="5" />
            <O T="Point" X="-5" Y="5" />
        </O>
        <O T="Surface" Z="20">
            <O T="Point" X="-10" Y="-10" />
            <O T="Point" X="10" Y="-10" />
            <O T="Point" X="10" Y="10" />
            <O T="Point" X="-10" Y="10" />
        </O>
</O>



Girilecek iki yüzeyin köşe noktalarının sırası ve sayısının önemi vardır. Yüzey noktalarının alt ve üst yüzeydeki sıraları farklı tanımlanırsa, bordür çizgileri kendi sırasındaki noktalar arasında çizgi oluşturacak ve yanlış bir görünüm oluşacaktır. Şöyleki;

Örnek:

<O T="Volume">
        <O T="Surface" Z="0">
            <O T="Point" X="-5" Y="-5" />
            <O T="Point" X="5" Y="-5" />
            <O T="Point" X="5" Y="5" />
            <O T="Point" X="-5" Y="5" />
        </O>
        <O T="Surface" Z="20">
            <O T="Point" X="10" Y="-10" />
            <O T="Point" X="10" Y="10" />
            <O T="Point" X="-10" Y="10" />
            <O T="Point" X="-10" Y="-10" />
        </O>
  </O>



Yine başka dikkat edilmesi gereken husus yüzeylerin aynı nokta sayısına sahip olmasıdır. Farklı nokta sayıları olduğu zaman her bir nokta öncelikle kendi sırasındakiyle eşleşir ve eşleşemeyen noktalarda birleşme olmaz ve açıkta kalır.

Örnek:

<O T="Volume">
        <O T="Surface" Z="0">
            <O T="Point" X="-5" Y="-5" />
            <O T="Point" X="5" Y="-5" />
            <O T="Point" X="5" Y="5" />
            <O T="Point" X="-5" Y="5" />
        </O>
        <O T="Surface" Z="20">
            <O T="Point" X="-10" Y="-10" />
            <O T="Point" X="10" Y="-10" />
            <O T="Point" X="10" Y="10" />
            <O T="Point" X="0" Y="20" />
            <O T="Point" X="-10" Y="10" />
        </O>
</O>





Eğer bir yüzeyde tüm noktalar için ortak bir koordinat varsa bunu bir üst parantezde ortak olarak gösterebiliriz. Bunun anlamı tüm noktaların içine o koordinat değerlerini yazmakla aynıdır. Örnekte olduğu gibi ilk "Surface" Objesinde Z değerleri her bir nokta için 0 olduğundan, tek tek yazmak yerine yüzey objesinin satırında tek bir hamlede gösterebiliriz. Çünkü bu satırlar arasında hiyerarşik toplam vardır. Bu hiyerarşik toplamı görmek için toglobal fonksiyonu kullanabiliriz. (Bkz: toglobal)

Örnek:

<O T="Group" Z="2">
    <O N="hacim" T="Volume" Z="5">
        <O N="yuzey1" T="Surface" Z="1">
            <O T="Point" X="-width" Y="-width" Z="3" />
            <O T="Point" X="width" Y="-width" Z="3"/>
            <O T="Point" X="width" Y="width" Z="3"/>
            <O T="Point" X="-width" Y="width" Z="3"/>
        </O>
        <O N="yuzey2" T="Surface" Z="11">
            <O T="Point" X="-width/2" Y="-width/2" Z="4"/>
            <O T="Point" X="width/2" Y="-width/2" Z="4"/>
            <O T="Point" X="width/2" Y="width/2" Z="4"/>
            <O T="Point" X="-width/2" Y="width/2" Z="4"/>
        </O>
    </O>
</O>

Yukarıdaki örnekte hiyerarşik toplama bakılacak olursa, en dıştan içeriye doğru "Group" hacimi içinde bulundurur, hacim de yuzey1 ile yuzey2'yi içinde bulundurur.
Yani yuzey1 içten dışarıya doğru Z değeri 3+1+5+2 ile hesaplanarak Z=11 değerini alır.
Yuzey2 de Z değeri 4+11+5+2 ile hesaplanarak Z=22 değerini alır.




Parametreleri:


Sınıfı

Zorunluluk

Adı

Varsayılan değeri ve açıklaması

Öznitelikler

1

Draw Face A

Zorunlu 
Değil

N="DrawFaceA" 

D="Draw Face A?: A yüzeyi gösterilsin mi? [Yes=1/No=0]" 
V="1"

Role="Input"

2

Draw Face B

Zorunlu 
Değil

N="DrawFaceB" 

D="Draw Face B?: B yüzeyi gösterilsin mi? [Yes=1/No=0]" 
V="1"

Role="Input"

3

Draw Border

Zorunlu 
Değil

N="DrawBorder" 

D="Draw Border?: A ile B yüzeyini birleştiren sınır çizgileri gösterilsin mi? [Yes=1/No=0]" 
V="1"

Role="Input"

4

Draw Border Around Face A

Zorunlu 
Değil

N="DrawFaceABorder" 

D="Draw Border Around Face A?: A yüzeyi etrafındaki sınır çizgileri gösterilsin mi? [Yes=1/No=0]" 
V="1"

Role="Input"

5

Draw Border Around Face B

Zorunlu 
Değil

N="DrawFaceBBorder" 

D="Draw Border Around Face B?: Should graphics display a border around face B? [Yes=1/No=0]" 
V="1"

Role="Input"