Основно съдържание
Програмиране
Курс: Програмиране > Раздел 4
Урок 6: ТрансформацииРотация
Освен да местиш мрежата, можеш също и да я завъртиш с функцията
rotate()
. Тази функция приема един аргумент, който е градусите, на които искаш да завъртиш мрежата.Във версията на ProcessingJS, която използваме в Кан Академия, всички функции, които имат нещо общо с ротация, по подразбиране измерват ъглите в градуси, но могат да се конфигурират така, че да измерват ъглите в радиани – стандартната единица за измерване на ъгли. Ако искаш да използваш радиани, можеш да зададеш
angleMode = "radians";
в началото на своята програма.Когато говорим за ъгли в градуси, казваме, че пълният кръг има 360°. Когато говорим за ъгли в радиани, казваме, че пълният кръг има 2π радиана. Ето една диаграма, която да ти припомни градусите и радианите в един кръг:
Ако искаш да си припомниш или да научиш за ъгловите измервания, можеш да изгледаш урока "Основи на ъгловите измервания" тук в Кан Академия.
Да опитаме нещо просто: завъртане на квадрат на 45 градуса:
Хей, какво се случи? Как така квадратът се премести и сега е отрязан? Отговорът е: квадратът не се е преместил. Мрежата се заврътя. Ето какво се случи всъщност. Както виждаш в ротираната координатна система квадратът все още има горен ляв ъгъл (40, 40).
Ротация – правилният начин
Правилният начин, по който да завъртим квадрата, е следният:
- Транслирай началото на координатна система (0, 0) до мястото, в което искаш да бъде горният ляв ъгъл на квадрата.
- Ротирай мрежата на 45° (π/4 радиана)
- Нарисувай квадрата в началото.
Ето и програмата за ротиране на квадрата, написана по правилния начин. Забележи разликата в кода: тази програма изпълнява
translate(40, 40);
и след това rect(**0, 0,** 40, 40);
на мястото на rect(**40, 40,** 40, 40);
.Тази статия е адаптация на 2D трансформации от J David Eisenberg, използвана под лиценз Creative Commons Attribution-NonCommercial-ShareAlike .
Искаш ли да се присъединиш към разговора?
Все още няма публикации.