0043121:櫻井 なほ

形状デザイン
–様々な形
–制御構造
回転体
回転体
lathe {
linear_spline
5,<0,0>, <1,1>, <3,2>, <2,3>, <2,4>
pigment { Red }
finish { ambient .1 phong .75 }
}
プリズム
prism {
linear_sweep
cubic_spline
0, 1,
18,
<3,-5>, <3,5>, <-5,0>,
<3, -5>, <3,5>, <-5,0>, // #1
<2,-4>, <2,4>, <-4,0>,
<2,-4>, <2,4>, <-4,0>, // #2
<1,-3>, <1,3>, <-3,0>, <1, -3>,
<1,3>, <-3,0>
// #3
pigment { Green }
}
球移動「線形」
球移動
#include "colors.inc"
sphere_sweep {
background{
linear_spline
color Cyan }
4,
camera{
<-5, -5, 0>, 1
<-5, 5, 0>, 1
location <0,0,-20>
< 5, -5, 0>, 1
look_at <0,0,0>
}
< 5, 5, 0>, 1
light_source{ <0,0,-5>
pigment{
color White}
color Blue}
}
指定点の
個数と
座標値
球の移動とcubic_spline
#include "colors.inc"
background{
color Cyan }
camera{
location <0,0,-20>
look_at <0,0,0>
}
light_source{ <0,0,-5>
color White}
sphere_sweep {
cubic_spline
6,
<-2, -5, 0>, 1
<-5, -5, 0>, 1
<-5, 5, 0>, 1
指定点の
個数と
< 5, -5, 0>, 1
座標値
< 5, 5, 0>, 1
< 2, 5, 0>, 1
tolerance 0.1
pigment{ color Green }
}
球の移動とb_spline
#include "colors.inc"
background{
color Cyan }
camera{
location <0,0,-20>
look_at <0,0,0>
}
light_source{ <0,0,-5>
color White}
sphere_sweep {
b_spline
6,
<-2, -5, 0>, 1
<-5, -5, 0>, 1
<-5, 5, 0>, 1
指定点の
個数と
< 5, -5, 0>, 1
座標値
< 5, 5, 0>, 1
< 2, 5, 0>, 1
tolerance 0.1
pigment{ color Green }
}
テキスト
text {
ttf "timrom.ttf" "POV-Ray 3.6" 1, 0
translate<-3,0,0>
pigment { Red }
}
形状デザイン

今日の話題-2
– 変数宣言と代入計算
– 繰り返し構造
– 条件分け
14
「球」が,225個!
15
#declare , #local



識別子を宣言するために使用する
#declare
識別子名 = 対象 ;
#local
識別子名 = 対象 ;
#declareはシーン全体で有効
#localは宣言された場所(macroなど)でのみ有効
16
変数宣言と代入計算
変数:数値や文字列等に対して,名前をつ
ける.
宣言:#declare Rows = 5;
#local Here = <1,2,3>;
#declare Ao = rgb <0,0,1>;
利用:box{
Here,….
pigment{ Ao}
17
代入と計算


#declare x=1;
変数xに1を代入する.
#declare x=<式> ;
「式を計算し,その結果をxに代入する」
18
繰り返し構造

#while ( <条件> )
:
#end
<条件>が「真」である間,#endまでを繰り返す.
19
ループと制御変数
#declare c=-5;
#while(c<6)
sphere{
<0,0,0>,0.2
translate<c,0,0>
pigment{ color Red}
}
#declare c=c+1;
#end
20
条件分け

#if ( <条件> )
:
<- <条件>が真の場合
#else
:
<- <条件>が偽の場合
#end
21
色分け(条件分岐の例)
#declare c=-5;
#while(c<6)
sphere{
<0,0,0>,0.2
translate<c,0,0>
#if(c<0) pigment{ color Red}
#else pigment{color Green}
#end
}
#declare c=c+1;
#end
22
サンプルプログラムの実行結果
#declare , #while , #if , #end を使用したプログラム
10個の球を円形に並べて、
球の色を変えてみよう。
23
演習課題

球を一直線に10個並べるプログラムを作成して下さい。
24