Урок 13 Работа с костенурка
Езикът за програмиране Logo е прост, но мощен език за програмиране на графични обекти. Той е език за създаване на графика с помощта на костенурка, която се вижда на екрана и се движи с команди напред, назад, завърти се наляво, и т.н. С костенурката могат да се рисуват интересни форми на екрана и затова езикът става много популярен през 1980 година.
В езикът Small Basic също има костенурка и с помощта на нея ние можем да извеждаме графика на екрана.
Команди, с които можем да управляваме костенурката в графичния прозорец:
Turtle.Show()- Показва движението на костенурката, прави го видимо
Turtle.Move(d) – Премества костенурката на разстояние d
Turtle.MoveTo(x,y) - Премества костенурката в точка с координати х и у
Turtle.TurnLeft() - Завой на ляво на 90°
Turtle.TurnRight() Завой на дясно на 90°
Turtle.Turn(α ) Завъртва се на ъгъл α обратно на часовниковата стрелка
Turtle.PenDown() Оставя следа следа / молив/ в цвят избран чрез PenColor
Turtle.PenUp() Скрива следните при движение/ безцветна диря/ , костенурката е видима
Turtle.Hide() Скрива, прави невидима костенурка
Turtle.Angle = α Задава направлението на движения — ъгъл на "оста" на костенурката относително спрямо оста Oy. Например:
0 — по вертикала, нагоре ; 90 — надявано по хоризонтала ; –90 — наляво по хоризонтала,180 — надолу по вертикала
Turtle.Speed = s Задава скорост на движение на костенурката от 0 до 10
Задача 1. С помощта на костенурката да нарисуваме квадрат
Въвеждаме програмния код:
Turtle.Move(100)
Turtle.TurnRight()
Turtle.Move(100)
Turtle.TurnRight()
Turtle.Move(100)
Turtle.TurnRight()
Turtle.Move(100)
Turtle.TurnRight()
Резултатът се вижда в графичния прозорец. Добре се вижда последователността при рисуването – линия по линия докато се получи квадрата.
Тъй като рисуваме 4те страни по един и същи начин нека реализираме програмата с помощта на цикъл:
For i = 1 To 4
Turtle.Move(100)
Turtle.TurnRight()
EndFor
Задача 2. Нека нарисуваме шестоъгълник.
Ще използваме ъгъл от 60 градуса тъй като 360:60 =6 колкото са страните на фигурата
Въвеждаме кода
For i = 1 To 6
Turtle.Move(100)
Turtle.Turn(60)
EndFor
И получаваме:
Прави ли ви впечатление че костенурката започва да чертае от точка, чиито координати са в центъра на графичния прозорец
За целта добавяме следните редове:
Turtle.PenUp() – скрива дирята на костенурката
Turtle.MoveTo( 30, 250) – отива до указаната точка
Turtle.Angle = 0 – завърта се по посока на оста у, нагоре
Turtle.PenDown() – започва да оставя следи
Изпълнявайки кода ще получим следното:
До тук ние се научихме да управялваме костенурката и да и указваме кога да чертае и кога не.
Задача 3. Напишете програма която с помощта на костенурката да чертае многоъгълник. Потребителят трябва да въведе броя на страните и техната дължина в пиксели.
Решение:
TextWindow.Write( "Брой страни ")
sides = TextWindow.ReadNumber()
TextWindow.Write( "дължина на страна в пиксели ")
daljina= TextWindow.ReadNumber()
angle = 360 / sides
For i = 1 To sides
Turtle.Move(daljina)
Turtle.Turn(angle)
EndFor
Помислете как бихте променили разположението на чертежа в графичния прозорец?
Направете корекции и запишете програмния код.
Задача4.
Нека начертаем една фигура с 50 страни
sides = 50
length = 400 / sides
angle = 360 / sides
Turtle.Speed = 9
For i = 1 To sides
Turtle.Move(length)
Turtle.Turn(angle)
EndFor
Изпълнявайки програмния код виждаме, че фигурата се визуализира като окръжност.
Отговорете на въпроса защо е така.
Променете дължината на страната и вижте резултата.
За да направим една по-нестандартна фигура ще използваме координатите на точката от която костенурката започва да чертае фигурата и ще организираме повтаряне на това действие 20 пъти като костенурката се завърта на ъгъл=18 градуса. / 18*20 = 360 градуса/
sides = 50
length = 500 / sides
angle = 360 / sides
Turtle.Speed = 10
For j=1 To 20
For i = 1 To sides
Turtle.Move(length)
Turtle.Turn(angle)
EndFor
Turtle.Turn(18)
EndFor
Изпълнете програмния код. Доволни ли сте от резултата?
Нека да използваме костенурката и да нарисуваме други интересни фигури.
Да начертаем лабиринт от вложени един в друг квадрати със страни в различен цвят и съответно вложени триъгълници. За целта ще използваме генериране на случаен цвят. Ще използваме ученото до сега за позициониране на костенурката, ще я местим и въртим на определен ъгъл – за квадрата – 90 градуса, за триъгълника 120 градуса.
Страната на най-малкия квадрат или триъгълник ще бъде 5 пиксела и това ще определи стъпката за повтаряне на действията и в двата цикъла.
Първият цикъл чертае лабиринт от квадрати а втория – лабиринт от триъгълници. Резултатът ще бъде следния:
Задачи: