If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Ротация

Освен да местиш мрежата, можеш също и да я завъртиш с функцията 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 .

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.