Я работаю над некоторым кодом JavaScript для рендеринга стандартных 2D-элементов SVG/Canvas (с рисунком Raphael-JS) в изометрии 3Dish вид.Перевод элементов SVG для изометрического представления
Скажем, у нас есть два прямоугольника, нарисованные рядом друг с другом. Затем я их перерисовываю под правильным углом (в основном 30-градусный поворот) для изометрического обзора.
(На изображении выше я показал происхождение двух соответствующих элементов.)
Моя проблема, я не знаю, как правильно перевести все отдельные элементы, чтобы они «плитка» правильно, а не просто перекрывается.
Хотя на самом деле использование плитки упростит ситуацию, поскольку я мог бы просто разместить любое место плитки на той, которая была перед ней, плитки в этом случае не будут работать. Все динамично и будет более сложным, чем простые плоскости x/y.
Here is an image of some isometric tiles если есть какие-либо недоразумения относительно того, как я хочу, чтобы эти объекты были размещены.
Ваше название, кажется, указывает, что вы используете элемент HTML Canvas. Поскольку Raphael использует SVG (хотя они также говорят о холсте), вам может понадобиться очистить это, чтобы получить ответы. Интересный вопрос, хотя! – polarblau
Спасибо за подсказку, polarblau. Я постараюсь уточнить свой вопрос. –
Обратите внимание, что рисунок, который вы поставили в своем вопросе, не является правильной изометрической проекцией, предполагая, что два квадрата находятся на одной высоте с землей. Как показано в приведенном вами URL-адресе, края соседних плит должны оставаться выровненными после проецирования. Если вы пытались показать свою проблему, то вам, возможно, следует пояснить, что это текущий/неправильный результат, который вы показываете. – Phrogz