java Graphics2D 画图

createh52个月前 (03-23)技术教程10

在Java中,当需要画一些特殊的形状时,比如说椭圆、矩形等,可以使用 Graphics2D 来绘图。

一些API:

g.drawLine(3,3,50,50);//画一条线段
g.drawRect(80,100,40,25);//画线框
g.drawOval(10,10,60,120);//画椭圆

//画多边形
int px1={50,90,10,50};//首末点相重,才能画多边形 
int py1={10,50,50,10};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);

关于画图的更多内容,可以参考网上的一些介绍,或者官方API。

Graphics2D 对象中有个函数是 translate(x,y),该函数的功能如下:

将椭圆的原点移动到 (x,y)。

该函数和 rotate函数结合使用,可以实现将一个图形绕一个点旋转。

g2.rotate(Math.PI * rotate / 180.0);   //注意该函数是绕着椭圆的原点旋转

比如说,将一个水平的椭圆绕着椭圆的中心点旋转一个角度,需要先将椭圆的原点移动到一个位置,然后再绕着新的原点旋转,示意图如下:

新原点的坐标可以根据水平状态下原点的坐标以及旋转的角度算出来。需要注意的是:先移动原点,然后再旋转,顺序不能乱。

示例代码:

Graphics2D g2 = (Graphics2D)g.create;
g2.setColor(Color.red);
g2.translate(translateX, translateY);
g2.rotate(Math.PI * rotate / 180.0);
g2.drawOval(0, 0, ovalWidth - 1, ovalHeight - 1);
g2.translate(-translateX, -translateY);
g2.dispose;

相关文章

「Java」绘图入门和机制,绘图方法演示(绘制坦克)

目录1.绘图入门(绘制一个圆)1.第一步//1.先定义一个Mypanel,继承JPanel,画图行就在面板上画。//Mypanel可以理解为一个画板//Graphics可以理解为一个画笔,提供了很多绘...

stable-diffusion.java, Java调用Stable Diffusion实现AI 画图

今天了解了一个新的项目,stable-diffusion.java, 这是一个Java 项目,通过底层调用stable-diffusion.cpp, 从而让Java 项目也能AI 画图, 好神奇!st...

还能这么玩?用VsCode画类图、流程图、时序图、...不要太爽

软件设计中,有好几种图需要画,比如流程图、类图、组件图等,我知道大部分人画流程图一般都会用微软的viso绘制,我之前也是这个习惯。viso画图有个不好的地方是需要时刻去调整线条和边框已达到简洁美观,今...

Python绘图Turtle库详解

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行...

从PlantUML到Mermaid:代码画图的革命,让图表绘制更自由

引言在技术文档和软件开发中,图形化展示信息是一种直观且有效的方式。PlantUML作为一个老牌工具,长期服务于UML图表的生成。然而,随着技术的发展,Mermaid这样的新星工具以其独特的优势,为开发...