第4回 プログラム例

n 角形

角数を漸次増やしていく

def circ(n:Int) {
    repeat(n) {
        forward(40) ;left(360/n)
    }
} 
clear//> circ: (n: Int)Unit
repeati(10) { i => 
    println(i)
    circ(i)
    jumpTo(i*100, 0)    
}

結果1

スパイラル

辺の数を漸次増やしていく

def spiral(n:Int) {
    repeati(n) {i=>
        forward(i*10) ;left
    }
} 
clear//> circ: (n: Int)Unit
repeati(10) { i => 
    println(i)
    spiral(i)
    jumpTo(i*100, 0)
    setHeading(90)    
}

結果2

とげとげ

角度を徐々に変化させていく

def hedgehog(r:Int) {
    repeat(40) {
        forward(100) ;left(180-r*3)
    }
} 
clear//> circ: (n: Int)Unit
repeati(20) { i => 
    hedgehog(i)
    jumpTo(i*100, 0)
    setHeading(90)    
}

結果3

スパイラル2
def spiral(r:Int) {
    repeati(10) {i=>
		setPenColor(color(random(256),random(256),random(256)))
		forward(i*10) ;left(r)
    }
} 
clear//> circ: (n: Int)Unit
repeati(10) {i => 
    println(i)
    spiral(75+i*3)
    jumpTo(i*100, 0)
    setHeading(90)    
}

結果4

グラデーション

setPenColor に渡す色を 関数 color() で作る

clear
repeati(25) { i => 
    setPenColor(color(i*10,255-i*10,0))
    moveTo(i*10,100)
    jumpTo(0,0)
}

結果5