Şekil 6.1 Metin (string) ifadeleri ile çalışma (Nesnelere yüz numarası oluşturma)
Şekil 6.2 Nesnelere değiştirici uygulama
Şekil 6.3 Buton davranışının çalıştırılması
Şekil 6.4 Slider oluşturma (Kaydırak modelleme)
utility kaydirak "Kaydirak Modelleme" |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider bukmeDegeri "Bukme" range:[-180,0,-180] -- |
-- Bu kod satırı kitaptadır. -- |
-- Bu kod satırı kitaptadır. |
on germeDegeri changed val do $kaydirak01.germe.Stretch = val -- |
-- Bu kod satırı kitaptadır. -- |
on burkmaDegeri changed val do $kaydirak01.burkma.angle = val -- |
-- Bu kod satırı kitaptadır. |
on buzmeAmount changed val do $kaydirak01.buzme.amount = val -- |
slider buzmeCurve "Buzme Egimi" range:[-2,0,-1.75] -- |
-- Bu kod satırı kitaptadır. -- |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
label yaz "Yazan: " across:2 -- |
hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0] -- |
label surum "Surum: 1.0 (20-12-2009)" |
( |
-- Bu kod satırı kitaptadır. |
kaydirak01.name = "kaydirak01" |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
kaydirak01.Length = 40 |
kaydirak01.Width = 40 |
kaydirak01.Height = 150 |
kaydirak01.Fillet = 7.5 |
kaydirak01.Length_Segments = 6 -- kaydirak01 isimli nesnenin uzunluk segment sayısı 6 adet olsun. |
kaydirak01.Width_Segments = 2 |
kaydirak01.Height_Segments = 112 |
kaydirak01.Fillet_Segments = 6 |
egme = Stretch() |
egme.name = "egme" |
-- Bu kod satırı kitaptadır. -- kaydirak01 isimli nesneye, (yukarıda tanımlanan) egme isimli (Stretch) değiştiriciyi ata. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
bukme.name = "bukme" |
-- Bu kod satırı kitaptadır. -- kaydirak01 isimli nesneye, (yukarıda tanımlanan) bukme isimli (bend) değiştiriciyi ata. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
germe.name = "germe" |
addModifier kaydirak01 germe |
-- Bu kod satırı kitaptadır. -- (Yukarıda atanan) germe isimli (Stretch) değiştirici, Stretch değerini germeDegeri isimli slider’dan alsın. |
germe.axis = 1 -- (Yukarıda atanan) germe isimli (Stretch) değiştiricinin uygulanacağı eksen y ekseni olsun (0 - X, 1 - Y, 2 - Z). |
-- Bu kod satırı kitaptadır. |
burkma.name = "burkma" |
addModifier kaydirak01 burkma |
burkma.angle = burkmaDegeri.value |
-- Bu kod satırı kitaptadır. |
buzme.name = "buzme" |
addModifier kaydirak01 buzme |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
buzme.PrimaryAxis = 0 |
buzme.EffectAxis = 0 |
-- Bu kod satırı kitaptadır. -- Tüm viewport’larda tüm nesneler görünür durumda olsun. |
) -- modelle isimli button’un davranışının sonu |
) |
Şekil 6.5 Değiştiricilerin etkisinin bağımlı hale getirilmesi
-- Bu kod satırı kitaptadır. -- İsmi prizma1 olan, yükseklik segment sayısı 14 ve yükseklik değeri 100 birim olan bir prizma oluştur. |
-- Bu kod satırı kitaptadır. -- prizma1 isimli nesneye, angle değeri 30 derece olan twist değiştiricisi ata. |
prizma2 = Box HeightSegs:10 Height:50 pos:[100,0,0] -- İsmi prizma1 olan, yükseklik segment sayısı 10, yükseklik değeri 50 birim ve x ekseninde 100 birim artı yönde konumlanan bir prizma oluştur. |
-- Bu kod satırı kitaptadır.-- prizma2 isimli nesneye, prizma1 isimli nesneye uygulanan bend değiştiricisini bağımlı olarak kopyala (Bağımlı olarak kopyalanan değiştiriciler değiştirici yığınında italik olarak yazılırlar.). |
Şekil 6.6 Değiştirici gizmo konumunun bir nesne konumuna bağlanması
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır.. |
bukme.angle = -120 |
bukme.axis = 1 |
addModifier prizma bukme |
-- Bu kod satırı kitaptadır. -- (Yukarıda prizma isimli nesneye atanan) bukme isimli değiştiricinin transform referans noktası (gizmo) konum değeri, prizma isimli nesnenin transform referans noktası (gizmo) konum değeri olsun (yani kapsul isimli nesne nerede ise prizma isimli nesne, o konum değerini referans alarak değiştirici etkisine tabii tutulsun) (prizma.transform yerine prizma.objectTransform ifadesi de kullanılabilir.). |
-- Bu kod satırı kitaptadır. -- Modify paneline geç. |
select prizma -- Sahnede prizma isimli nesneyi seç. |
Şekil 6.7 Değiştirici değerine alt ve üst limit verilmesi
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. -- prizma isimli nesneye, belirtilen miktar ve eğim değerlerinde Taper değiştiricisi ata. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. -- prizma isimli nesneye atanan Taper değiştiricisinin üst limit değeri 100 birim olsun. |
prizma.Taper.lowerlimit = 65 |
rotate prizma -90 y_axis -- prizma isimli nesneyi y ekseninde -90 derece döndür. |
Şekil 6.8 Değiştirici alt nesnesine (gizmo) transform değeri verilmesi
Şekil 6.9 Sütun modelleme uygulaması (değiştirici uygulama)
3D Studio MAX programında modellenen nesneler, programın içerisinde üç yöntemle, fareyi sürükleyerek 3 boyutlu olarak incelenebilir biçimde web sayfasına konabilir hale getirilebilir. Birbirinden farklı nesneler ve sahneler için bu yöntemler aşağıda kullanılmıştır.
Aşağıdaki sahneler görüntülenmiyorsa 3 boyutlu olarak sahneyi inceleyebilmenizi sağlayacak programlardan birini aşağıdaki bağlantıdan indirebilirsiniz.
Sahne üzerinde farenizi tıklayıp sürükleyerek 3 boyutlu olarak sahneyi gezebilirsiniz. Ayrıca, farenizin orta ve sağ tuşuna tıklayarak daha gelişmiş izleme seçeneklerine ulaşabilirsiniz (internet explorer web tarayıcısı tavsiye edilir).
utility sutunModelleme "Sütun Modelleme" |
( |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
on uzunluk changed val do $sutun.Length = val |
slider genişlik "Genişlik" range:uzunluk.range Orient:#vertical |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
( |
slider bukmeAcisi "Aci" range:[-45,90,0] |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider buzmeEgrisi "Egim" range:[-2.5,5,-2.5] Orient:#vertical |
on buzmeEgrisi changed val do $sutun.buzme.curve = val |
slider buzmeUstLimiti "Ust" range:[0,100,100] Orient:#vertical |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
on burmaAcisi changed val do $sutun.burma.angle = val |
slider burmaMeyli "Egim" range:[0,100,0] Orient:#vertical |
-- Bu kod satırı kitaptadır. |
slider burmaUstLimiti "Ust" range:[0,300,100] Orient:#vertical |
on burmaUstLimiti changed val do $sutun.burma.upperlimit = val |
-- Bu kod satırı kitaptadır. |
on burmaAltLimiti changed val do $sutun.burma.Lowerlimit = val |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider yukseltme "Arttır" range:[0,20,0] Orient:#vertical |
on yukseltme changed val do $sutun.germe.amplify = val |
slider germeUstLimiti "Ust" range:[0,75,50] Orient:#vertical |
on germeUstLimiti changed val do $sutun.germe.to = val |
slider germeAltLimiti "Alt" range:[-50,0,0] Orient:#vertical |
on germeAltLimiti changed val do $sutun.germe.from = val |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider basmaEgrisi "Egim" range:[-4,2,0] Orient:#vertical |
on basmaEgrisi changed val do $sutun.basma.Bulge_Curviture = val |
) |
-- Bu kod satırı kitaptadır. |
( |
slider alanEtkisiFalloff "Falloff" range:[0,80,40] Orient:#vertical across:3 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider alanEtkisiBubble "Bubble" range:[-3,2,0] Orient:#vertical |
on alanEtkisiBubble changed val do $sutun.alanEtkisi.Bubble = val |
) |
-- Bu kod satırı kitaptadır. |
( |
button olustur "Olustur" |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
sutun.name = "Sutun" |
sutun.Length = uzunluk.value |
sutun.Width = uzunluk.value |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
sutun.Width_Segments = genişlik.value/2 |
sutun.Height_Segments = yukseklik.value/2 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
bukme.name = "bukme" |
addModifier sutun bukme |
-- Bu kod satırı kitaptadır. |
bukme.direction = 0 |
bukme.axis = 0 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
addModifier sutun buzme |
buzme.amount = buzmeDegeri.value |
buzme.curve = buzmeEgrisi.value |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
buzme.lowerlimit = buzmeAltLimiti.value |
-- Bu kod satırı kitaptadır. |
burma.name = "burma" |
addModifier sutun burma |
burma.angle = burmaAcisi.value |
burma.bias = burmaMeyli.value |
burma.axis=2 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
burma.lowerlimit = burmaAltLimiti.value |
-- Bu kod satırı kitaptadır. |
germe.name = "germe" |
addModifier sutun germe |
-- Bu kod satırı kitaptadır. |
germe.amplify = yukseltme.value |
germe.axis = 2 |
germe.limit = 1 |
germe.to = germeUstLimiti.value |
germe.from = germeAltLimiti.value |
-- Bu kod satırı kitaptadır. |
basma.name = "basma" |
-- Bu kod satırı kitaptadır. |
basma.Bulge_amount = basmaDegeri.value |
-- Bu kod satırı kitaptadır. |
alanEtkisi = Affect_Region() |
alanEtkisi.name = "alan etkisi" |
addModifier sutun alanEtkisi |
alanEtkisi.falloff = alanEtkisiFalloff.value |
alanEtkisi.ignoreBackfacing = 1 |
-- Bu kod satırı kitaptadır. |
alanEtkisi.Bubble = alanEtkisiBubble.value |
-- Bu kod satırı kitaptadır. |
kaplamaTuru.name = "kaplama turu" |
addModifier sutun kaplamaTuru |
-- Bu kod satırı kitaptadır. |
viewport.resetallviews |
-- Bu kod satırı kitaptadır. |
viewport.setType #view_persp_user |
-- Bu kod satırı kitaptadır. |
max pancamera |
completeRedraw() |
) |
label yaz "Yazan: " across:2 |
-- Bu kod satırı kitaptadır. |
label surum "Surum: 1.0 (26-10-2009)" |
) |
|
|
|
|
Şekil 6.10 Kemer modelleme uygulaması
 |
|
|
|
Şekil 6.11 For komutu ile x ekseninde çoğaltarak konumlandırma

Şekil 6.12 For komutu ile xy düzleminde çoğaltarak konumlandırma
Şekil 6.13 For komutu ile orjinin merkezinde döndürerek çoğaltma
Şekil 6.14 Üç kürenin, birbirlerinden 10 birim uzaklıkta oluşturulması
Şekil 6.15 For komutu ile dairesel çoğaltma
Şekil 6.16 For komutu ile 2 nokta arasında rastgele çoğaltma
Şekil 6.17 Rastgele modellemeye göre nesne parametrelerini belirleme
Şekil 6.18 Vertex ve face indeks numarası oluşturma uygulaması
nokNoRen = orange |
-- Bu kod satırı kitaptadır. |
noBoy = 2 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
noKal = 0.1 |
kal = extrude amount:noKal |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
spinner uzSegs "Uzun. Segm. Sayisi: " type:#integer range:[1,4,1] offset:[0,6] fieldWidth:30 |
spinner genSegs "Gen. Segm. Sayisi: " type:#integer range:[1,4,1] fieldWidth:30 |
spinner yukSegs "Yuks. Segm. Sayisi: " type:#integer range:[1,4,1] fieldWidth:30 |
spinner kenSay "Kenar Sayisi: " type:#integer range:[3,16,12] offset:[0,-63] fieldWidth:30 visible:false |
spinner seg1 "Segment Sayisi: " type:#integer range:[4,16,12] offset:[0,-21] fieldWidth:30 visible:false |
spinner seg2 "Segment Sayisi: " type:#integer range:[2,4,2] offset:[0,-21] fieldWidth:30 visible:false |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
If yeNesSec.state == 2 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = true; seg1.visible = false; seg2.visible = false; derSegs.visible = false) |
If yeNesSec.state == 3 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = false; seg1.visible = true; seg2.visible = false; derSegs.visible = false) |
If yeNesSec.state == 4 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = false; seg1.visible = false; seg2.visible = true; derSegs.visible = false) |
If yeNesSec.state == 5 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = true; seg1.visible = false; seg2.visible = false; derSegs.visible = false) |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
) |
spinner nokNoBoy "Nokta No Boyutu" range:[0.5,20,noBoy] fieldWidth:40 |
spinner yuzNoBoy "Yuz No Boyutu: " range:[0.5,20,noBoy] fieldWidth:40 |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
( |
1: box name:"prizma" LengthSegs:uzSegs.value WidthSegs:genSegs.value HeightSegs:yukSegs.value wirecolor:nesRen |
2: cone name:"koni" radius1:25 radius2:15 Height:25 HeightSegs:2 sides:kenSay.value smooth:off wirecolor:nesRen |
3: sphere name:"kure" segs:seg1.value smooth:off wirecolor:nesRen |
4: geosphere name:"kure" segs:seg2.value smooth:off wirecolor:nesRen |
5: cylinder name:"silindir" Height:25 sides:kenSay.value smooth:off wirecolor:nesRen |
6: pyramid name:"piramit" WidthSegs:genSegs.value depthsegs:derSegs.value HeightSegs:yukSegs.value wirecolor:nesRen |
) |
-- Bu kod satırı kitaptadır. |
select yeNes |
) |
-- Bu kod satırı kitaptadır. |
( |
model = copy $ |
convertToMesh model |
select model |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
nokNo = text name:(uniqueName($.name+" "+"Nokta ")) alignment:2 wirecolor:nokNoRen size:nokNoBoy.value pos:(zKon+(nokKon*nesUz)) |
nokNo.baseobject.renderable = true |
nokNo.text = nok as string |
addModifier nokNo kal |
rotate nokNo 90 x_axis |
) |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
yuzNo.baseobject.renderable = true |
-- Bu kod satırı kitaptadır. |
addModifier yuzNo kal |
rotate yuzNo 90 x_axis |
) |
) |
-- Bu kod satırı kitaptadır. |
on yuzNoBoy changed val do $*yuz*.size = val |
-- Bu kod satırı kitaptadır. |
( |
max tool zoomextents all |
viewport.zoom 0.7 |
max pancamera |
) |
group "Toplam Sayi Bilgileri" |
( |
label nokSayBil "Baglanti noktasi: " offset:[10,0] across:2 |
-- Bu kod satırı kitaptadır. |
label yuzSayBil "Yuz: " offset:[38,0] across:2 |
label yuzSay offset:[5,0] |
) |
-- Bu kod satırı kitaptadır. |
( |
checkBox nokNoGos "Nokta numaralarini goster" checked:true |
-- Bu kod satırı kitaptadır. |
checkBox yuzNoGos "Yuz numaralarini goster" checked:true |
on yuzNoGos changed State do if yuzNoGos.checked != true then hide $*yuz* else unhide $*yuz* |
) |
fn onay = |
( |
nokNoGos.checked = true |
yuzNoGos.checked = true |
) |
on nokYuzNoOl pressed do |
( |
delete geometry; delete shapes |
-- Bu kod satırı kitaptadır. |
kopya() |
-- Bu kod satırı kitaptadır. |
yuzSay.text = getNumFaces $ as string |
nokNoYap() |
-- Bu kod satırı kitaptadır. |
delete $ |
gor() |
-- Bu kod satırı kitaptadır. |
) |
label yaz "Yazan: " across:2 |
hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0] |
label surum "Surum: 1.0 (05-03-2010)" |
) |
Şekil 6.19 Nesneye dizi halinde istenen değerde değiştirici uygulama
Şekil 6.20 Döner merdiven modelleme uygulaması
utility donerMerdiven "Döner Merdiven Modelleme" |
( |
-- Bu kod satırı kitaptadır. |
spinner turSay "Tur Sayisi: " range:[0.1,10,2] |
spinner basYuk "Kalinlik: " range:[1,4,2] |
spinner bos "Bosluk: " range:[-2,8,0] |
spinner yar "Yaricap: " range:[6,50,10] |
button olustur "Olustur" |
label yaz "Yazan: " across:2 |
hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0] |
label surum "Surum: 1.0 (26-10-2009)" |
-- Bu kod satırı kitaptadır. |
( |
delete $basamak* |
delete $orta* |
-- Bu kod satırı kitaptadır. |
( |
bas = ChamferBox name: "basamak" Length:6 Width:20 Height: basYuk.value Fillet:1 Length_Segments:1 Width_Segments:1 Height_Segments:1 Fillet_Segments:6 pos:[yar.value,0,0] wirecolor:(color 0 100 100) |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
completeRedraw() |
) |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
on turSay changed val do olusturma() |
on basYuk changed val do olusturma() |
on bos changed val do olusturma() |
-- Bu kod satırı kitaptadır. |
) |
|
|
|
|
Şekil 6.21 Pervane modelleme uygulaması
 |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
( |
button olustur "Olustur" across:2 |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
( |
spinner kanAd "Kanat Adedi: " type:#integer range:[2,16,3] Orient:#right |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
slider kanUcEg "Kanat Uç Egimi:" type:#integer range:[-45,45,22.5] Orient:#right |
) |
group "Gobek Degerleri" |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
button durGeri "Dur/Geri" |
-- Bu kod satırı kitaptadır. |
button durIleri "Dur/Ileri" |
on durIleri pressed do max time forward |
05445941077 -- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
button devamEt "Devam Et" |
on devamEt pressed do max time play |
) |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
gobek.name = "gobek" |
gobek.radius1 = GobDisYar.value |
-- Bu kod satırı kitaptadır. |
gobek.HeightSegs = 1 |
gobek.capsegs = 1 |
gobek.sides = 32 |
gobek.Height = gobYuk.value |
gobek.wirecolor = [200,100,100] |
-- Bu kod satırı kitaptadır. |
kanat.name = "kanat" |
kanat.radius1 = 50 |
kanat.radius2 = 0 |
-- Bu kod satırı kitaptadır. |
kanat.HeightSegs = 24 |
kanat.capsegs =16 |
kanat.sides = 48 |
-- Bu kod satırı kitaptadır. |
addModifier kanat strtch |
-- Bu kod satırı kitaptadır. |
strtch.amplify = -5 |
strtch.axis = 0 |
-- Bu kod satırı kitaptadır. |
addModifier kanat twst |
-- Bu kod satırı kitaptadır. |
twst.axis = 2 |
twst.Gizmo.position = [0,-80,0] |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
addModifier kanat slcMdfr |
slcMdfr.Slice_Type = 3 |
-- Bu kod satırı kitaptadır. |
slcMdfr.Slice_Plane.rotation = (EulerAngles 0 90 0) |
kanatSayisi = kanAd.value |
for i = 1 to kanatSayisi do |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
$kanat*.wirecolor = $gobek.wirecolor |
convertToMesh gobek |
-- Bu kod satırı kitaptadır. |
) |
gobek.name = "pervane" |
viewport.setType #view_persp_user |
delete $kanat* |
max time start |
-- Bu kod satırı kitaptadır. |
) |
on kanAd changed val do modelle() |
-- Bu kod satırı kitaptadır. |
on kanYuk changed val do modelle() |
on kanUcEg changed val do modelle() |
on gobYuk changed val do modelle() |
-- Bu kod satırı kitaptadır. |
on olustur pressed do modelle() |
-- Bu kod satırı kitaptadır. |
( |
$pervane*.name = "yedekPervane" |
hide $yedekPervane* |
) |
on oynat changed state do |
( |
-- Bu kod satırı kitaptadır. |
( |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
max time play |
) |
else |
( |
deletekeys $pervane |
max time start |
) |
) |
label yaz "Yazan: " across:2 |
hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0] |
label surum "Surum: 1.0 (28-02-2010)" |
) |
|
Şekil 6.22 Pickbutton ile bir sınıfa ait nesne seçimi
Şekil 6.23 Nesneye vertex ve face indeks numarası oluşturma uygulaması
Şekil 6.24 Bir özelliğe sahip olan nesnelerin bu özelliklerinin değiştirilmesi
Şekil 6.25 Bir sınıfa ait olan nesnelerin özelliklerinin değiştirilmesi
Şekil 6.26 Case komutu ile birden fazla sınıfa ait nesnenin oluşturulması
Şekil 6.27 Karınca evleri modelleme uygulaması (while)
(Bu çalışmadaki while komutunun kullanımı konusunda, G.Ü. G.E.F. Ort. Fen ve Matematik Alanları Eğt. Böl. Matematik Eğt. A.B.D. Öğr. Gör. Dr. Hakan ŞANDIR katkı sağlamıştır.)
-- Yazan: Nadir AKSOY (http://www.nadiraksoy.com) |
-- Karınca Evleri Modelleme Uygulaması (Bir Yüzey Üzerine, İstenen Sayıdaki Nesneyi, Birbirlerinin İçine Girmeyecek Şekilde Rastgele (Random) Yerleştirme): |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
addModifier zemin (yumusatma = turboSmooth name:"yumusatma") |
-- Bu kod satırı kitaptadır. |
enableHardwareMaterial zemin.material true |
showHWTextureMap zemin.material true |
yarUst = 6 |
yarAlt = 4 |
-- Bu kod satırı kitaptadır. |
( |
yuva = Tube() |
yuva.sides = 24 |
yuva.capsegs = 8 |
yuva.HeightSegs = 8 |
yuva.radius1 = random yarAlt yarUst |
yuva.radius2 = yuva.radius1*0.9 |
yuva.Height = yuva.radius1*1.8 |
-- Bu kod satırı kitaptadır. |
yuva.XForm.gizmo.scale = [random 1 2,1,1] |
-- Bu kod satırı kitaptadır. |
yuva.Taper.amount = random -0.3 -0.1 |
yuva.Taper.curve = random 0.2 0.4 |
addModifier yuva (TurboSmooth()) |
-- Bu kod satırı kitaptadır. |
meditmaterials[1].materialList.count = 2 |
meditmaterials[1].materialList[1].diffuse = (random [0,0,0] [150,150,255]) |
meditmaterials[1].materialList[1].specularlevel = 90 |
meditmaterials[1].materialList[1].glossiness = 60 |
meditmaterials[1].materialList[2].diffuse = [70,70,70] |
meditmaterials[1].materialList[2].opacity = 30 |
meditmaterials[1].materialList[2].specularlevel = 110 |
meditmaterials[1].materialList[2].glossiness = 30 |
meditmaterials[1].materialList[2].opacityType = 1 |
yuva.material = meditmaterials[1] |
hali = cylinder pos:(yuva.pos+[0,0,yarAlt/10]) |
hali.sides = 12 |
hali.capsegs = 1 |
hali.HeightSegs = 1 |
-- Bu kod satırı kitaptadır. |
hali.Height = yarUst/20 as float |
-- Bu kod satırı kitaptadır. |
hali.wirecolor = (color (random 0 255) 0 (random 0 255)) |
tavan = Cone() |
tavan.sides = 24 |
tavan.capsegs = 12 |
tavan.HeightSegs = 12 |
tavan.radius1 = yuva.radius1 |
-- Bu kod satırı kitaptadır. |
tavan.Height = tavan.radius1*(random 1.1 1.3) |
tavan.pos = [0,0,yuva.Height] |
addModifier tavan (yuva.XForm) |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
tavan.Taper.curve = 2 |
-- Bu kod satırı kitaptadır. |
tavan.squeeze.Bulge_amount = random 0.25 0.75 |
addModifier tavan (yuva.TurboSmooth) |
tavan.material = Arch___Design__mi diff_color:(color 255 (random 50 100) (random 0 50)) refl_weight:0.4 refl_gloss:0.5 |
kapiAcma = ChamferBox() |
kapiAcma.Length = yuva.Height/3 |
kapiAcma.Width = yuva.Height/3 |
kapiAcma.Height = yuva.radius1*0.92 |
kapiAcma.Fillet = kapiAcma.Length/5 |
kapiAcma.Length_Segments = 6 |
kapiAcma.Width_Segments = 6 |
kapiAcma.Height_Segments = 1 |
kapiAcma.Fillet_Segments = 6 |
kapiAcma.pos = [0,-(yuva.radius2*1.012),-kapiAcma.Fillet] |
kapi = ChamferBox() |
kapi.Length = yuva.radius1/20 |
kapi.Width = yuva.Height/3 |
kapi.Height = yuva.radius1*0.8 |
kapi.Fillet = kapiAcma.Length/5 |
kapi.Length_Segments = 6 |
kapi.Width_Segments = 6 |
kapi.Height_Segments = 6 |
kapi.Fillet_Segments = 6 |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
kapi.bend.axis = 2 |
kapi.bend.angle = -2.5 |
kapi.bend.direction = 90 |
kapi.material = Arch___Design__mi diff_color:(color (random 100 150) (random 50 100) 0) |
kapi.pivot = [-kapi.Width/2,-(yuva.radius2*1.012),kapi.Height/2] |
rotate kapi (random -60 -10) z_axis |
-- Bu kod satırı kitaptadır. |
cam = #{1685..1692,1815..1816,1819..1820,1941..1942,1945..1946} |
-- Bu kod satırı kitaptadır. |
addModifier yuva (Symmetry()) |
yuva.Symmetry.axis = 0 |
yuva.Symmetry.flip = true |
PKCikarma = yuva-kapiAcma |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
baca.radius2 = baca.radius1/1.3 |
baca.pos = tavan.pos+([random (-tavan.radius1/1.5) (tavan.radius1/1.5),random (-tavan.radius1/2) (-tavan.radius1/3),0]) |
rotate baca (random 0 360) z_axis |
baca.material = Arch___Design__mi diff_color:(color (random 50 150) (random 50 100) 0) |
-- Bu kod satırı kitaptadır. |
boolobj.setboolop BToplama 1 |
delete baca |
convertToPoly yuva |
yuva.attach hali yuva |
yuva.attach tavan yuva |
yuva.attach kapi yuva |
) |
olustur() |
-- Bu kod satırı kitaptadır. |
( |
mesafe = distance konumEski konumYeni |
-- Bu kod satırı kitaptadır. |
) |
yarKat = yarUst*1.25 |
-- Bu kod satırı kitaptadır. |
yuvaSayisi = 24 |
-- Bu kod satırı kitaptadır. |
d = #(yuva.pos) |
delete $tube01 |
for i = 1 to yuvaSayisi do |
( |
-- Bu kod satırı kitaptadır. |
( |
d[i+1] = random (yarKon*[cos(i*fark),sin(i*fark),0]) ((yarKon/2)*[cos(i*fark),sin(i*fark),0]) |
degme = false |
-- Bu kod satırı kitaptadır. |
( |
if (konBel d[i+1] d[j] yarKat) == false then degme = true |
) |
) |
-- Bu kod satırı kitaptadır. |
olustur() |
yuva.pos = d[i+1] |
rotate yuva (-90+(i*fark)) z_axis |
) |
Şekil 6.28 Nesneleri, birbirlerine değmeden random yerleştirme uygulaması
Şekil 6.29 Konum değeri ile bir değiştirici değeri arasında kontrol
Şekil 6.30 Konum değeri ile değiştiricisinin değeri arasında kontrol
Şekil 6.31 Geometrik değerlerin birbirlerine bağlanması (paramwire.connect)
Şekil 6.32 Dizi script’i
diziSag = #() |
diziArka = #() |
diziSol = #() |
diziOn = #() |
ara = 30 |
sayi = 8 |
-- Bu kod satırı kitaptadır. |
(
|
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
diziSol[i] = copy diziSag[i] pos:[-((sayi-1)*ara),(sayi*ara)-((i-1)*ara),0] wirecolor:blue |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
move cokDiz[1] [0,0,i*2] |
-- Bu kod satırı kitaptadır. |
) |
scale diziSol[diziSol.count] [1,1,2] |
scale cokDiz[3][1] [1,1,2] |
-- Bu kod satırı kitaptadır. |
-- Bu kod satırı kitaptadır. |
cokDiz[1] |
Başa Dön
|