如何使用Java编程打印图形?

在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上当初的jk根本不支持打印,直到jilk1.1才引入了很轻量的打印支持。
本文将通过一些具体的程序实例来说明如何使用Java编程打印图形?
1、如何打印出一个三角形?
分析代码示例:
public class Test {
public static void main(String[] args) {
// 打印一个4行的三角形
// 外层循环打行
for (int i = 1; i <= 4; i++) {
// 打空格
for (int k = 1; k <=4-i; k++) {
System.out.print(" “);// 注意此处输出不换行
}
// 内层循环打列
for (int j = 1; j <= i2-1; j++) {
// 每循环一次打一个

System.out.print(”");// 注意此处不换行,每次打到一行上面
}
// 每打完一行就换行
System.out.println();
}
}
}
2、如何打印出一个矩形?
比如我们要打印一个4行5列的矩形:首先我们要控制行数和列数,使用for循环的嵌套循环完成,外层循环控制行数,内层循环控制列数。
分析代码示例:
public class Test {
public static void main(String[] args) {
// 打印一个4行5列的矩形
// 外层循环打行
for (int i = 1; i <= 4; i++) {
// 内层循环打列
for (int j = 1; j <= 5; j++) {
// 每循环一次打一个

System.out.print("*");// 注意此处不换行,每次打到一行上面
}
// 每打完一行就换行
System.out.println();
}
}
}
3、如何打印出一个心形图案?
心形图案的实现,重点是心形函数r=a(1–sinθ),据说这是笛卡尔死前寄出的最后一封情书的内容,这里面隐藏着一个刻骨铭心的秘密:“一生只为等待能手绘这个函数给我的人”。心形函数要做直角坐标系转换,然后投影到xOy平面上,就可以调用画椭圆方法来实现画心形图案。

分析代码示例:
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;

public class First extends Applet
{
int width, height;
Image image; //缓冲区对象
Graphics g1;
public void init() //Applet初始化时调用
{
setBackground(Color.black); //设置背景
this.setSize(350, 310);

	   width = getSize().width; 				//获得窗口宽度
	   height = getSize().height; 
	   image = createImage(width, height); 			//创建图像对象
	   g1 = image.getGraphics(); 
   } 
   public void paint(Graphics g)				//绘图方法
   { 
	   g1.clearRect(0, 0, width, height); 
	   g1.setColor(Color.blue); 
	   
	   for(int i = 0; i <= 90; i++) 		//控制横向变化
		   	for(int j = 0; j  <= 90; j++)	//控制竖向变化
		   	{ 
			   //转换为直角坐标
			  double  r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j)) * 18; 
			  double  x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i) + width / 2;   //为了在中间显示,加了偏移量
			  double  y = -r * Math.sin(Math.PI / 45 * j) + height / 4;//为了在中间显示,加了偏移量
			  g1.fillOval((int) x, (int)y, 2,2);	//绘制点
		   	}
	   //显示缓存区的可变Image对象
	   g.drawImage(image, 0, 0, this); 
   } 
} 

猜你喜欢

转载自blog.csdn.net/weixin_43695064/article/details/84938333