在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上当初的jk根本不支持打印,直到jilk1.1才引入了很轻量的打印支持。
本文将由千锋Java培训机构讲师通过一些具体的程序实例来说明如何使用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 <= i*2-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);
}
}
学习java开发,可以参考千锋提供的java学习路线,该学习路线罗列了各阶段完整的java学习知识,根据千锋提供的java学习路线图,可以让你对学好java开发需要掌握的知识有个清晰的了解,并能快速入门java开发。
相关文章
关注千锋学习站小程序
随时随地免费学习课程
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱