gpt4 book ai didi

java - 在 Java 中创建斜坡

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:37 26 4
gpt4 key购买 nike

我试图在 Java 中创建一个斜坡。我可以使用 DrawLine 函数,它会创建一个完美的函数,但我不想使用它,而是为它创建我自己的函数。问题是它在点之间有间隙。

import java.applet.Applet;
import java.awt.Graphics;

public class slope extends Applet{



public void drawLine(int x1, int y1, int x2, int y2, Graphics g) {

double m = (y2 - y1) / (double)(x2-x1);
double y = y1;
for (int x =x1; x < x2; x++) {

drawPoint(x,(int)y,g);
y +=m;
}
}


public void paint(Graphics g) {
drawLine(20, 10, 300, 700, g); //has spaces between the dots
g.drawLine(20, 10, 300, 700); //this is perfect


}

private void drawPoint(int x, int y, Graphics g) {

g.drawLine(x, y, x, y);

}
}

enter image description here

最佳答案

两个循环:仅当 deltaX > deltaY 时才循环 x++。否则你只循环 y++。

在同一个循环中双步进 x 和 y,决定哪个应该递增(假设你也有 x 作为 y 的函数)可能会由于额外的测试而导致绘制速度变慢,并且相邻像素可能看起来像行中的一个点.您需要使用颜色强度来手动进行抗锯齿(镀金)。两个循环要简单得多。

仅供引用,您正在尝试生成图像,您也可以只在矩阵中设置整数并制作屏幕外原始图像(BufferedImage 及其 .setRGB() 方法),稍后再绘制。这可能会更快并避免明显的绘画延迟。

关于java - 在 Java 中创建斜坡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com