java 点阵打印机_输入文字,输出点阵文字

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

有很多magic number,修改如下

import java.awt.Font;

import java.awt.Rectangle;

import java.awt.Shape;

import java.awt.font.FontRenderContext;

import java.awt.font.GlyphVector;

import java.awt.geom.AffineTransform;

import java.awt.geom.RectangularShape;

public class FontTest

{

public static void main(String[] args)

{

Font font = new Font("黑体", Font.BOLD, 20);

AffineTransform at = new AffineTransform();

FontRenderContext frc = new FontRenderContext(at, true, true);

GlyphVector gv = font.createGlyphVector(frc, "JinCeon");

RectangularShape rs = gv.getVisualBounds();

//rs这个矩形的Y坐标为什么是负数?求解答

Shape shape = gv.getOutline((float)-rs.getX(), (float)-rs.getY());

Rectangle rect = shape.getBounds();

int width = rect.width + rect.x;

int height = rect.height;

boolean[][] view = new boolean[width][height];

for (int i = 0; i < width; i++)

{

for (int j = 0; j < height; j++)

{

if (shape.contains(i, j))

{

view[i][j] = true;

} else

{

view[i][j] = false;

}

}

}

for (int j = 0; j < height; j++)

{

for (int i = 0; i < width; i++)

{

if (view[i][j])

{

System.out.print("囧");// 替换成你喜欢的图案

} else

{

System.out.print("   ");// 全角半角和上面一致

}

}

System.out.println();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值