「矩形旋转Java」矩形旋转一周一定是圆柱吗
今天给各位分享矩形旋转Java的知识,其中也会对矩形旋转一周一定是圆柱吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、如何用java写矩形平移和旋转后输出坐标的代码
- 2、java drawImage 如何实现旋转和缩放
- 3、java 怎么让一个图形绕一个点旋转360度
- 4、已知矩形的两个对角坐标,以及旋转的角度,求其余两个角的坐标,最好有Java程序
- 5、怎么用JAVA把一张图片翻180度
如何用java写矩形平移和旋转后输出坐标的代码
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class LX3_3 extends Applet {
public void paint(Graphics g) {
g.setColor(Color.red);//设置红颜色
g.drawOval(35,35,100,60);//画椭圆(圆心、宽和高)
g.fillOval(200,15,60,100);//画具有填充色的圆
g.setColor(Color.blue);//设置蓝颜色
g.drawRect(20,130,80,80);//画矩形
g.fillRect(120,130,80,80);//画具有填充色的矩形
g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形
g.fillRoundRect(320,130,80,80,20,20);//画具有填充色的 圆角矩形
}
}
该程序是在Myeclipse的环境下运行的
在二维平面内,画长方形等都只需要改变点的坐标即可实现平移,旋转,缩放
上面还加入了颜色,可供参考
水平有限,但希望对你有帮助
java drawImage 如何实现旋转和缩放
这个函数可以缩放,不能旋转。头四个数是画到什么地方,后四个数是画那幅图的哪个部分,也就是可以光画图的一半等等。
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
AffineTransform at = new AffineTransform();
double angle = Math.PI;
at.rotate(angle);
int transX = 100;
int transY = 100;
at.translate(transX, transY);
Image img = new BufferedImage();
g2.drawImage(img, at, null);
}
java 怎么让一个图形绕一个点旋转360度
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
/**
* @author ZhengYesheng
*/
public class RotateImageCanvas extends Canvas implements Runnable
{
private static final long serialVersionUID = -1997487731464495923L;
BufferedImage img;
BufferedImage rotatedImg;
int degress = 0;
public RotateImageCanvas(BufferedImage img)
{
super();
this.img = img;
new Thread(this).start();
}
@Override
public void run()
{
while (true)
{
//A,与B的代码配合决定旋转的速度
degress += 1;
degress %= 360;
repaint();
try
{
if (degress == 0)
{
//绕一周后等待的时间在这里设置
Thread.sleep(3 * 1000);
}
else
{
//考虑到视觉平滑,这里不应大约40。
Thread.sleep(30);
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void paint(Graphics graphics)
{
super.paint(graphics);
//获取旋转指定角度后的图片。为了避免累计误差,这里是用原始图像旋转的
rotatedImg = rotateImage(img, degress);
//绘制旋转后的图片
graphics.drawImage(rotatedImg, 0, 0, this);
}
/**
* 旋转图片为指定角度。
* 注意:1、这个方法实现了图像的基于中点的旋转,要想绕指定点,需要配合Matrix类
* 2、为避免图像被裁切,结果图片的尺寸也需要动态计算
* 3、现在旋转后有黑色背景,如果不需要这个效果,需要设置结果图片的Alpha模式
*
* @param bufferedimage
* 目标图像
* @param degree
* 旋转角度
* @return
*/
private BufferedImage rotateImage(BufferedImage bufferedimage, int degree)
{
int w = bufferedimage.getWidth();
int h = bufferedimage.getHeight();
int type = bufferedimage.getColorModel().getTransparency();
BufferedImage img;
Graphics2D graphics2d;
(graphics2d = (img = new BufferedImage(w, h, type)).createGraphics())
.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2);
graphics2d.drawImage(bufferedimage, 0, 0, null);
graphics2d.dispose();
return img;
}
}
已知矩形的两个对角坐标,以及旋转的角度,求其余两个角的坐标,最好有Java程序
无论矩形怎么转,矩形的四个顶点都在以对角线为直径的圆上,通过已知的两点坐标可以算出一条对角线的斜率,
再通过旋转角你就可以算出两条对角线的夹角,用夹角公式算出另一条对角线的方程,和圆的方程联立即可。
假设已知点(x1,y1),(x2,y2) 那么对角线交点(圆心)为((x1+x2)/2,(y1+y2)/2)记为(x0,y0),
所以圆方程(x-x0)^2 + (y-y0)^2 = r^2 (r为已知两点距离的一半)
算出斜率 k=(y2-y1)/(x2-x1),注意判断x2-x1为不为0.
用反正切计算出倾斜角a,加上旋转角b,则两条对角线夹角为180-(a+b-90),这样你就能算出另一条对角线的斜率,
过圆心,所以另一条对角线的方程就得到了,联立圆的方程解出两个解就行了。
写程序时请注意判断:
1、x2-x1是不是为0
2、算出的反正切的角是和X轴的夹角,所以要减去90度,这里注意判断如果旋转角为0,特殊处理
大概就这样了。
怎么用JAVA把一张图片翻180度
是画不出来的,要旋转图形,java2D,用java.awt.geom.AffineTransform类。
public void rotate(double theta,double x,double y)
将此图形沿顺时针或逆时针旋转theta弧度(不是角度,和PI有个换算)。
1。创建AffineTransform trans = new AffineTransform()对象;
2。例如把一个矩形绕100,100点旋转60度
trans.rotate(60.0*3.1415927/180,100,100);
3。把Graphics对象,如g_2d设置为具有trans这种功能的“画笔”
g_2d = (Graphics2D)g;
g_2d.setTransform(trans);
……paint(Graphics g){
g_2d = (Graphics2D)g;
AffineTransform trans = new AffineTransform()
trans.rotate(60.0*3.1415927/180,100,100);
g_2d.setTransform(trans);
g_2d.drawImage(somting you want to draw here);
……
}
但愿对你有用……
矩形旋转Java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于矩形旋转一周一定是圆柱吗、矩形旋转Java的信息别忘了在本站进行查找喔。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。