1. 程式人生 > >如何使用Java程式設計列印圖形?

如何使用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); 
   } 
}