gpt4 book ai didi

java - 如何缩放许多形状并保持相同的比例

转载 作者:行者123 更新时间:2023-12-02 08:22:16 24 4
gpt4 key购买 nike

我有两个形状,我想进行缩放,我使用以下代码

Iterator iter = objects.iterator();


Shape shape;
while(iter.hasNext()){
shape = (Shape)iter.next();
AffineTransform t = shape.getAffineTransform();
int x = shape.getCenter().x;
int y = shape.getCenter().y;
t.translate(-x, -y);
t.scale(sx,sy);
t.translate(x, y);
shape.setAffineTransform(t);
}

形状被放大,但它们之间的距离变小 Befor the zooming after the zomming

我想用这两个形状制作一个复合形状,然后缩放它。还有其他方法可以保持比例吗?谢谢

最佳答案

就像我在评论中所说的那样,因为您围绕各自的中心缩放形状,所以这些中心显然不会移动。如果您希望所有内容统一缩放,请不要翻译任何内容:

  1. 找到原始视口(viewport)的中心点。这是您必须缩小的点。
  2. 将所有内容放大 (sx,sy)。
  3. 通过 (origcentrex*(1-sx), origcentrey*(1-sy)) 平移所有内容,将中心点移回到视口(viewport)的中心。

计算这些变换的最佳方法是拿起铅笔和纸,绘制坐标系并遵循纸上的变换。

关于java - 如何缩放许多形状并保持相同的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265335/

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