Как правильно повернуть в нужную сторону обьект?

Ссылка скопирована
1 ответ

Всем привет.
Имеется вот такая окружность,

Как правильно повернуть в нужную сторону обьект?

и с внешней стороны имеется зеленые ромбы. Они расположены на определенном угле по отношению к центру окружности.
И мне их надо повернуть, так чтобы нижняя часть ромба смотрела как бы в центр окружности, и как я понимаю вершины робма должны быть на данном угле.
Вопрос как вычеслить угол для поворота фигуры?
И самое главное, например 2 левых ромба должны быть повернуты против часовой стрелки, то есть на лево, а другие 2 по часовой стрелке.
В данном примере порядок углов на котором находятся ромбы это -165, -135, -45, -30

Дополнительно:

Как видите, помеченные углы равны (альфа).
Поскольку у вас углы отрицательные (отсчитываются в противоположную сторону по сравнению с общепринятой математикой), то искомый угол будет 90 градусов плюс угол направления на ромб. Т.е. для -30 получится 90-30=60.

Как правильно повернуть в нужную сторону обьект?

  • Спасибо, поулчилось с правильными наклонами
  • В общем не совсем получилось, у меня странно и стрелка повернута и один из лимитов.

    Как правильно повернуть в нужную сторону обьект?

    Еще раз по углам, на изображении -100 это угол -240, а значение 100 это угол 60, может проблема в том что последнйи лимит надо по другому считать так как он вниз щитается от 0?
    Для синей стрелки я по вашему совету делаю, но вот большая стрелка смотрит в значение 0 правильно, угол для маленькой такой же а вот она где то в стороне

  • BlinCT, у вас какие-то ошибки в программном коде, но без кода невозможно указать на ошибки.

    Для синей стрелки я по вашему совету делаю

    По какому? Случайно не с Wataru меня перепутали?

    но вот большая стрелка смотрит в значение 0 правильно, угол для маленькой такой же а вот она где то в стороне

    Видно, что угол у синей стрелки правильный (смотрит вертикально), а неправильное её положение, как будто она была отражена вправо отностельно своего левого края.

    Но менеджер сказал что есть готовые SVG и их надо юзать.

    Печально.

    Как правильно повернуть в нужную сторону обьект?

  • hint000, на счет угла для последнего лимита я нашел ошибку, я не совсем правильно расчет делал, но исправил благодаря вашему примеру.
    А вот на счет стрелки я не знаю. Я для нее делаю такие же расчеты, кое что убрал и стрелка стала вплотную левым верхним углом в центр прямой, но так же находится на левой стороне.
    Есть предположение что графический обьект стрелки берет мои расчеты точки расположения, но не как центр а как левый угол верхний.
  • BlinCT,

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

    Запросто может быть.

Ответы:

Не надо объект поворачивать. надо его рисовать сразу правильно ориентированным.

Ваш ромб - это 4 точки. Одну вы знаете - она на окружности, под заданным углом в зависимости от скорости. Вы эту точку вычислять умеете - вы туда стрелочку спидометра рисуете.

Противоположную точку вы можете легко найти - она под тем же углом, но на окружности большего радиуса.

Две оставшееся точки на окружности какого-то среднего радиуса под углами с небольшим отклонением от предыдущего угла в обе стороны.

Эти углы надо будет рассчитать на бумажке. Нарисуйте 2 коружности заданого радиуса, постройте между ними ромб, проведите его диагонали, найдете там парочку прямоугольних треугольников. В программе можно будет просто эти длины засунуть в формулы и скормить какой-нибудь atan2() функции.

  • У меня они раньше расчитывались, ну то есть все точки, с этим проблем нету. Но менеджер сказал что есть готовые SVG и их надо юзать.
    Так что с точками уже не могу(
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Для того чтобы правильно повернуть объект в нужную сторону, вам необходимо использовать функцию rotate() или transform в CSS, в зависимости от того, какой язык программирования вы используете.

Прежде всего, вам нужно определить, вокруг какой оси вы хотите повернуть объект: X, Y или Z. Далее, укажите угол поворота в градусах.

Вот пример использования функции rotate() в CSS для поворота объекта на 90 градусов вокруг оси Y:

.your-object {
  transform: rotateY(90deg);
}

.your-object { transform: rotateY(90deg); }

Если вы хотите повернуть объект на определенный угол, используйте следующий код:

.your-object {
  transform: rotate(45deg);
}

.your-object { transform: rotate(45deg); }

Если вы работаете с языком программирования PHP и хотите повернуть изображение, вы можете использовать функцию imagerotate(). Вот пример кода:

// Создание изображения
$image = imagecreatefromjpeg('path/to/your/image.jpg');
 
// Поворот изображения на 90 градусов
$rotated_image = imagerotate($image, 90, 0);
 
// Сохранение повернутого изображения
imagejpeg($rotated_image, 'path/to/save/rotated_image.jpg');
 
// Очистка памяти
imagedestroy($image);
imagedestroy($rotated_image);

// Создание изображения $image = imagecreatefromjpeg('path/to/your/image.jpg'); // Поворот изображения на 90 градусов $rotated_image = imagerotate($image, 90, 0); // Сохранение повернутого изображения imagejpeg($rotated_image, 'path/to/save/rotated_image.jpg'); // Очистка памяти imagedestroy($image); imagedestroy($rotated_image);

Надеюсь, эти примеры помогут вам правильно повернуть объект в нужную сторону в зависимости от используемого языка программирования. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно