Java качели, как нарисовать изображение в виде четырехугольника, используя 4 точки - PullRequest
0 голосов
/ 25 мая 2020

Я хочу нарисовать изображение в виде четырехугольника, используя в качестве параметров точки 4-х углов. Есть ли в Java что-нибудь для этого уже встроенное? Я видел похожий пост, но данное решение, похоже, не помогло мне. Вызов функции будет выглядеть так:

wall.drawTexture(Point topLeft, Point topRight, Point bottomLeft, Point bottomRight);

Мой класс стены уже содержит атрибут «BufferedImage текстура».

enter image description here

Контекст: я делаю движок Raycaster. Я могу разделить свое изображение на более мелкие столбцы, чтобы они соответствовали моим столбцам пикселей в 3D-виде, но целостность текстуры не очень высока. Я думал, что если использовать только первый и последний луч для попадания в одну и ту же поверхность стены и вместо этого преобразовать в параллелограмм, моя проблема решится. Это также, вероятно, будет быстрее, чем рисование столбец за столбцом.

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Все, что я могу предложить, это рассмотреть следующее:

paintComponent(Graphics g) {
     super.paintComponent(g);

    Graphics2D g2d = (Graphics2D) g;
    // Rendering hints can visually smooth out the graphics with
    // anti aliasing.
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
}

Другие возможности могут быть связаны с AffineTransform и связанными с ним классами, в которых вы можете манипулировать различными аспектами графического контекста (например, обрезка, размытие, et c).

1 голос
/ 25 мая 2020

Вы можете использовать drawLine. Что-то там, где aws линия между 1-2, 1-3, 4-2, 4-3.

...