簡體   English   中英

Java swing 如何使用4個點將圖像繪制為四邊形

[英]Java swing how to draw an image as a quadrilateral by using 4 points

我想通過使用 4 個角的點作為參數將圖像繪制為四邊形。 Java 是否已經為此內置了任何東西? 我看過類似的帖子,但給出的解決方案似乎沒有達到我想要的效果。 function 調用如下所示:

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

我的牆 class 已經包含一個屬性“ BufferedImage紋理”。

在此處輸入圖像描述

背景:我正在做一個光線投射引擎。 我可以將圖像拆分為較小的列,以對應於 3D 視圖上的像素列,但紋理完整性不是很高。 我認為只使用第一條和最后一條光線照射同一個牆面並轉換為平行四邊形就可以解決我的問題。 它也可能比逐列繪制更快。

你可以使用drawLine。 它在 1-2、1-3、4-2、4-3 之間划出一條線。

我只能建議您考慮以下幾點:

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和相關類,您可以在其中操作圖形上下文的各個方面(例如剪切、模糊等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM