关于swing rotate方法旋转问题

上次总结了一下 swing rotate方法的旋转问题 配合translate方法移动原点 在这里说声对不起了! 说实话 ,现在回想起来当时自己都很懵逼。

那今天自己重新总结了一下它的用法 rotate方法 有两种形式 一种不给定坐标进行旋转 还有一种是rotate(double deg, int x,int y) 这个方法是先将原点根据(x,y)移动之后在进行旋转,然后在将根据(-x,-y)进行一次translate方法,也就是移动,其实这样就可以看作是围绕一个点进行旋转。 那前者只是在原有的原点上进行旋转,所以如果想要进行特定的点进行旋转,那就使用后者。

说完这个我们再说一下如何使我们画出来的图形是让这个点在图形的中心的,想必所想的不只是围绕一个点画图形,更想围绕图形中心点画 那这个时候就可以在我们任意的绘制图形的方法上动一下手脚就好了 。。
eg. g2d.fillRect(int x,int y,int width,int height); 这个方法是根据在特定的位置上画一个圆,给定宽度,给定高度

那我们知道绘图是在原点开始处绘制,图形的中心不可能在原点下,所以需要我们去调整,x,y的位置,那这时候就根据你的宽度,以及高度,来决定你x,y距离原点的位置,这样就能让你的原点在图形的中心位置。

举个栗子
我想画成右边那种样子,这样就需要结合rotate方法和fillRect方法 ,fill系列的方法不只这一种哦,那从图片中可以看出我们只需要将x距离原点取负,然后y的值其实也代表了距离原点的距离。
那你也懂了 取负就完事了 。然后就是需要注意你的图形的长度跟y之间的一个长度关系 这个呢就需要你自己在实际绘图中体会一下。

在这里插入图片描述
大家可以做一个齿轮感受一下这两个方法的结合。

                                             2018-6-9  蟹蟹
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值