Макинтош и образование:Информатика и ИТ:Лого:Команда "Повтори" |
Начнем с "классики" Лого: Цветки | |
TO Square :a Repeat 4 [ Forward :a Right 90 ] END TO Flower :x :y :a PU SetPos (List :x :y) PD SetH 0 Repeat 36 [ PU Forward :a / 36 PD Square :a Left 10 ] END TO Flowers Clean Ht SetC 65 SetPenSize 5 SetC 15 Flower -130 25 70 SetPenSize 2 SetC 25 Flower 35 -60 45 SetPenSize 3 SetC 125 Flower 180 30 55 SetC 9 SetPenSize 1 PU Home PD END | |
ОрнаментTO Parket Clean PD Repeat 8 [ Repeat 8 [ FD 50 RT 45 ] RT 45 ] END | |
СпиралиTO Spiral :d :s :a Cg HT PD Make "x :d Repeat INT 130 / :s [FD :x RT :a Make "x :x + :s] Wait 20 END TO Spirals SetPenSize 3 SetC 15 Spiral 0 1.2 53 SetC 55 Spiral 0 4 90 SetPenSize 2 SetC 105 Spiral 0 3 178 SetC 9 SetPenSize 1 PU Home PD END |
|
А теперь -- несколько программ с "маленькими хитростями".
СтенаВсе ряды кирпичей рисуются одной и той же процедурой -- но с разных сторон: то слева, то справа. | |
; (c)1991,1996 V. Batagelj TO Line Repeat 8 [ PU BK 24 PD Stone PU BK 40 PD Brick ] END TO Build LT 90 Repeat 5 [ Line RT 90 PU FD 40 RT 90 FD 8 Line LT 90 PU FD 8 LT 90 FD 8 ] END TO Stone SetC 5 Repeat 4 [ FD 16 RT 90 ] END TO Brick SetC 85 Repeat 2 [ FD 32 RT 90 FD 16 RT 90 ] END TO Wall SetPenSize 3 Clean PU HT BK 135 LT 90 FD 260 RT 90 PD Build SetC 9 SetPenSize 1 PU Home PD END | |
Олимпийские кольцаОбратите внимание на необычное решение процедуры "Circle". Благодаря этому очень легко можно изменять ширину кольца (вплоть до полного отсутствия отверстия). | |
; Olympic circles (idea Urska Lesjak). ; 1991,1996 V. Batagelj ; 1999 McKryak -- MicroWorld adaptation TO Circle Repeat 360 [ FD 70 PD FD 7 PU BK 77 LT 1] END TO Olymp SetPenSize 3 Clean HT PU FD 50 RT 90 FD 165 LT 90 SetC 15 Circle LT 90 SetC 5 FD 165 Circle SetC 95 FD 165 Circle SetC 45 RT 40 BK 110 RT 140 Circle FD 165 SetC 55 Circle SetC 9 SetPenSize 1 PU Home PD END | |
А вот эта роща каждый раз вырастает по-разному. Не зря же в ней использован датчик случайных чисел.
TO Tree :t :a SetH 0 PU SetPos :t PD SetC 35 SetPenSize 10 FD 10 * :a LT 85 SetC 55 SetPenSize 5 Repeat 36 [ FD :a RT 10 ] END TO Wood Clean HT Repeat 30 [ Tree ( List ( -250 + Random 500 ) ( -180 + Random 300 ) ) ( 3 + Random 4 ) ] Setc 9 SetPenSize 1 PU Home PD END |