gpt4 book ai didi

java - fillRect() 中的负数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:05 25 4
gpt4 key购买 nike

我使用负数让 fillRect() 走相反的路。它在我的电脑上运行良好,但我的 friend 看不到它正常运行。我该怎么办?

page.fillRect (12, 12, -5, 10);

最佳答案

对此有两种思想流派。

一个是任何具有负尺寸的多边形都是无意义的,不应该被渲染 - 你是什么意思它是 -10 像素宽??

另一个是负维度简单地反转该维度轴上的多边形。

大多数绘画系统都采用后一种逻辑。我用 Java 绘画的经验一直是这样,虽然我不会经常有负维度,所以我的经验可能不太重要。

至于你能做什么:

  1. 您可能需要让您的 friend 更新他的 Java 版本。
  2. 否则,您必须自己执行反转,方法是检查负维度并调换您的 x,y 原点以使维度变为正维度。也就是说,矩形 [10,10,-5,5] 在空间上等同于 [5,10,5,5]。将负尺寸添加到原点坐标,然后使其成为绝对尺寸。请注意,这可能会导致负来源,但希望绘图系统不是完全搞砸了。

就个人而言,如果可能的话,我更愿意需要更新的 JVM。

否则我推荐的代码是:

public void fillRect(Graphics gc, int x, int y, int width, int height) {
if(width <0) { x+=width; width =-width; }
if(height<0) { x+=height; height=-height; }
gc.fillRect(x,y,width,height);
}

另请注意,您需要类似的其他绘图操作。

最后,我会怀疑所有这一切中的另一个错误,因为行为非常令人惊讶 - 我会把所有东西简化为一个最小的测试程序,在包装大量绘画基元之前进行调试输出和验证。

关于java - fillRect() 中的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213040/

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