Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Повернуть 2D точку

Delphi , Графика и Игры , Canvas

Повернуть 2D точку

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

const
   PIDiv180 = 0.017453292519943295769236907684886;

 procedure Rotate(RotAng: Double; x, y: Double; var Nx, Ny: Double);
 var
   SinVal: Double;
   CosVal: Double;
 begin
   RotAng := RotAng * PIDiv180;
   SinVal := Sin(RotAng);
   CosVal := Cos(RotAng);
   Nx := x * CosVal - y * SinVal;
   Ny := y * CosVal + x * SinVal;
 end;
 (* End Of Rotate Cartesian Point*)

Преобразование (Rotate)

Процедура Rotate принимает четыре параметра:

  1. RotAng - вещественное число с плавающей запятой, представляющее угол поворота в радианах.
  2. x и y - вещественные числа с плавающей запятой, представляющие координаты 2D-точки для поворота.
  3. Nx и Ny - переменные вещественные числа с плавающей запятой, которые будут хранить повёрнутые координаты x и y соответственно.

Процедура вычисляет новые координаты (Nx и Ny) путем применения преобразования поворота к входной точке (x, y) с помощью заданного угла поворота RotAng. Вычисление основано на тригонометрических функциях sin и cos.

Разбивка процесса:

  1. Конвертация угла поворота из градусов в радианы умножением на константу PIDiv180.
  2. Вычисление значений синуса и косинуса для повёрнутого угла с помощью функций Sin и Cos.
  3. Применение преобразования поворота к входной точке (x, y) с использованием вычисленных значений синуса и косинуса.

Полученные повёрнутые координаты хранятся в переменных Nx (новая x-координата) и Ny (новая y-координата).

Например, если вызвать процедуру с углом поворота 45 градусов и начальной точкой (3, 4):

Rotate(45, 3, 4, Nx, Ny);

Вывод будет повёрнутыми координатами (Nx и Ny) для точки, которая была повёрнута на 45 градусов вокруг начала координат (0, 0).

Эта процедура может быть полезна в различных приложениях с графическим интерфейсом, где требуются повороты.

В статье описывается процедура поворота 2D точки на угол RotAng с помощью использования математических функций синуса и косинуса для трансформации координат.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Canvas ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:58:16/0.0053529739379883/1