java2d:如何将图像放置在具有正确旋转的中心周围

     2022-06-05     304

关键词:

enter image description here

我无法以正确的旋转角度在中心周围放置图像。这是我正在使用的代码,可以在屏幕截图中看到输出。切片的数量可以由用户动态更改,因此我需要根据切片的数量计算新的旋转值,但我无法找到正确的方法。我可以随意为pictureAngle添加一个值来调整旋转,但它只适用于这个特定数量的切片。

注意:要绘制的第一张图片是右侧红色切片上的图片,在上方的屏幕截图中显示为直线。

double angle = (double) 360 / this.slices.length;

for (int i = 0; i < this.slices.length; i++) {

    double pictureAngle = Math.toRadians(i * (360 / this.slices.length));

    px[i] = this.centerX + (wheelSize/2.1) * Math.cos(Math.toRadians((i * angle) + angle / 2));
    py[i] = this.centerY + (wheelSize/2.1) * Math.sin(Math.toRadians((i * angle) + angle / 2));

    p.addPoint((int)px[i], (int)py[i]);

    AffineTransform backup1 = g2d.getTransform();
    AffineTransform trans = new AffineTransform();

    trans.rotate(pictureAngle, (int)px[i], (int)py[i]);

    g2d.transform( trans );

    g2d.drawImage(pictures[i], (int)px[i] - (pictures[i].getWidth() / 2), (int)py[i], null);

    g2d.setTransform( backup1 );

    g2d.drawLine((int)this.centerX, (int)this.centerY, (int)px[i], (int)py[i]);


}

如果我任意添加103度旋转它几乎可以工作,所以我想我需要一个正确的方法来根据切片的数量得到这个数字:

double pictureAngle = Math.toRadians(103 + i * (360 / this.slices.length));

enter image description here

答案
        double angle = (double) 360 / nOfSlices;
        double startingAngle = 90 - angle / 2;

        for (int i = 0; i < nOfSlices; i++) {

            // this is the old code

            //rc2D arc = new Arc2D.Double(0, 0, wheelSize, wheelSize,
            //        i * angle,
            //        angle,
            //        Arc2D.PIE);

            Arc2D arc = new Arc2D.Double(0, 0, wheelSize, wheelSize,
                    (i * angle) - startingAngle,
                    angle,
                    Arc2D.PIE);

解决方案是在中间绘制第一个切片(我用黑色切片突出显示它 - 图片在下面)并将第一张图片放入其中0转,然后根据切片角度逐渐旋转图片。

enter image description here

如何正确地将 UIButton 中的图像放入图像中?

】如何正确地将UIButton中的图像放入图像中?【英文标题】:HowdoIcorrectlyplacetheimagefromaUIButtonintoanImage?【发布时间】:2012-01-0722:59:28【问题描述】:我正在尝试从相机拍摄照片并覆盖UIButton中的图像——它已被移动/旋转/缩放到屏... 查看详情

如何通过底部中心旋转图像?

】如何通过底部中心旋转图像?【英文标题】:Howtorotateanimagebyitsbottomcenter?【发布时间】:2013-08-1823:10:31【问题描述】:我尝试通过将视图层的anchorPoint属性设置为CGPointMake(0.5,1)来旋转图像的底部中心。它确实基于底部中心旋转... 查看详情

如何在 Pygame 中围绕偏离中心的枢轴旋转图像

】如何在Pygame中围绕偏离中心的枢轴旋转图像【英文标题】:HowcanyourotateanimagearoundanoffcenterpivotinPygame【发布时间】:2020-05-1113:51:52【问题描述】:我想围绕一个轴旋转图像,该轴不在Pygame中的Surface的中心。枢轴是图像中的绿色... 查看详情

如何将图像作为墙砖放置在 svg 路径中

】如何将图像作为墙砖放置在svg路径中【英文标题】:howtoplaceanimageinsvgpathaswalltiles【发布时间】:2020-01-2004:56:11【问题描述】:嗨,我有svg路径,我在其中放置图像https://i.imgur.com/NFhr6hq.jpg来自。当我将其仅显示在路径中心并且... 查看详情

在opengl中找到旋转的图像中心

】在opengl中找到旋转的图像中心【英文标题】:Findingcenterofimageforrotationinopengl【发布时间】:2014-05-2302:15:47【问题描述】:所以我有这段代码,它几乎可以在屏幕上绘制各种2D纹理,尽管必须从纹理(spritesheet)中“剖析”多个... 查看详情

如何将按钮放置在圆形图像视图上? [复制]

】如何将按钮放置在圆形图像视图上?[复制]【英文标题】:Howtopositionabuttonoveraroundedimageview?[duplicate]【发布时间】:2019-10-1103:48:28【问题描述】:如何使用autolaout将按钮定位在圆形图像视图上?请看下图目前我正在使用一些硬... 查看详情

在旋转滑块上方放置图像

】在旋转滑块上方放置图像【英文标题】:placeanimageaboverevolutionslider【发布时间】:2017-04-2217:13:38【问题描述】:我正在尝试将图像部分放在旋转滑块上方(滑块上侧的一部分应该被图像覆盖)我试过了imageposition:relative;z-index:10... 查看详情

如何在 div 中并排放置图像? (wordpress)

】如何在div中并排放置图像?(wordpress)【英文标题】:HowdoIplaceimagessidebysideindiv?(wordpress)【发布时间】:2013-06-0502:20:12【问题描述】:我一直在使用here中的代码,但是自从我需要将图像包装在一个div中之后,即使我将选择器更... 查看详情

如何将小图像放在 webview 背景的中心

】如何将小图像放在webview背景的中心【英文标题】:Howtoplacesmallimageoncentreofwebviewbackground【发布时间】:2019-08-1200:18:06【问题描述】:我试图在我的WebView的中心放置一个小图像,这样当webview不加载任何内容时,图像就会可见。... 查看详情

如何在屏幕的中心顶部对齐图像行

】如何在屏幕的中心顶部对齐图像行【英文标题】:Howtoalignrowofimagesatthecentertopofthescreen【发布时间】:2021-08-1302:07:58【问题描述】:我一直在尝试在屏幕顶部中心对齐一些图像,就像你想要标题一样,但我不知道该怎么做。我... 查看详情

如何在猫头鹰旋转木马内居中img?

】如何在猫头鹰旋转木马内居中img?【英文标题】:Howtocenteranimginsideofaowlcarousel?【发布时间】:2022-01-0818:38:13【问题描述】:我目前正在尝试在猫头鹰旋转木马的中心放置一个小图像。我确实弄清楚了,当它处于活动状态并位... 查看详情

如何将按钮垂直放置在框架的中心?

】如何将按钮垂直放置在框架的中心?【英文标题】:HowcanIplacebuttonsinthecenteroftheframeinaverticalline?【发布时间】:2014-05-2022:34:54【问题描述】:我会将这些按钮放置在框架的中心并相互上方,就像这样。BUTTONBUTTONBUTTON我在这个论... 查看详情

在悬停按钮 CSS 动画后面放置正确格式的图像

】在悬停按钮CSS动画后面放置正确格式的图像【英文标题】:PlacingcorrectlyformattedimagebehindaHoverButtonCSSAnimation【发布时间】:2018-02-0900:14:46【问题描述】:我目前正在尝试将图像放在我想与按钮一起使用的CSS悬停动画后面。成品应... 查看详情

对网页进行编码,但无法弄清楚如何将图像居中放置在文本框上

】对网页进行编码,但无法弄清楚如何将图像居中放置在文本框上【英文标题】:Codingawebpageandcannotfigureouthowtocentertheimagesoverthetextboxes【发布时间】:2020-06-2421:25:32【问题描述】:我已经尝试了几种方法,但没有改变。我有以下... 查看详情

如何正确旋转图像?

】如何正确旋转图像?【英文标题】:Howtorotateanimagecorrectly?【发布时间】:2017-04-2717:09:39【问题描述】:这种方法有什么问题?问题是旋转后的图像在旋转后有透明框。我怎样才能摆脱它?@implementationUIImage(RotationMethods)staticCGFlo... 查看详情

如何将小部件放置在具有成比例大小和位置的小部件上方

】如何将小部件放置在具有成比例大小和位置的小部件上方【英文标题】:HowtoplaceaWidgetaboveawidgetwithproportionalsizeandposition【发布时间】:2021-02-0704:15:29【问题描述】:我希望将一组小部件按比例放置在背景小部件(图像小部件)... 查看详情

将 Button 放置在具有不同屏幕尺寸的 ImageView 之上

...间】:2015-08-2919:37:34【问题描述】:我有一个包含选项的图像(match_parent),其中包含2个矩形。我试图在图像顶部放置2个透明按钮,以便单击图像会产生一个动作。但是,我正在尝试支持多种屏幕尺寸,因 查看详情

如何在 python 中将二进制图像的内容/对象居中?

】如何在python中将二进制图像的内容/对象居中?【英文标题】:Howtocenterthecontent/objectofabinaryimageinpython?【发布时间】:2020-04-1821:26:12【问题描述】:我有一个计算图形方向的代码。然后基于这个方向旋转图形直到它被拉直。这... 查看详情