Как правильно повернуть в нужную сторону обьект?
Всем привет.
Имеется вот такая окружность,
и с внешней стороны имеется зеленые ромбы. Они расположены на определенном угле по отношению к центру окружности.
И мне их надо повернуть, так чтобы нижняя часть ромба смотрела как бы в центр окружности, и как я понимаю вершины робма должны быть на данном угле.
Вопрос как вычеслить угол для поворота фигуры?
И самое главное, например 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 и их надо юзать.
Так что с точками уже не могу(
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос




Для того чтобы правильно повернуть объект в нужную сторону, вам необходимо использовать функцию rotate() или transform в CSS, в зависимости от того, какой язык программирования вы используете.
Прежде всего, вам нужно определить, вокруг какой оси вы хотите повернуть объект: X, Y или Z. Далее, укажите угол поворота в градусах.
Вот пример использования функции rotate() в CSS для поворота объекта на 90 градусов вокруг оси Y:
.your-object { transform: rotateY(90deg); }
Если вы хотите повернуть объект на определенный угол, используйте следующий код:
.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);
Надеюсь, эти примеры помогут вам правильно повернуть объект в нужную сторону в зависимости от используемого языка программирования. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.