【问题标题】:Java reverse clipping region?Java反向剪切区域?
【发布时间】:2023-04-08 00:25:01
【问题描述】:

您好,我正在为游戏制作闪光灯。我使用 Arc2D 制作手电筒,并且基本上剪掉了地图的一部分,以便只显示该部分,但我也希望地图的一部分也如此。

有没有办法反转我的剪辑区域并让该区域不被剪辑?

如何获得黑色区域?

【问题讨论】:

    标签: java graphics clipping


    【解决方案1】:

    可以使用Area#subtract方法获取想要的区域:

    Rectangle2D screen = 
        new Rectangle2D.Double(0,0,screenWidth, screenHeight);
    Area result = new Area(screen);
    Area clippingArea = new Area(yourArcClipShape);
    result.subtract(clippingArea);
    

    result 将成为全屏的形状,除了您原来的“弧形”剪切形状 - 即图像中的黑色区域。

    相关答案,展示了一些灯光效果和图像合成:

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 2011-09-10
      • 2010-11-22
      • 1970-01-01
      • 2013-04-11
      • 2012-10-13
      • 2018-07-19
      • 1970-01-01
      • 2015-12-06
      相关资源
      最近更新 更多