点阵输出字符

http://www.oschina.net/code/snippet_113917_4627

import java.awt.Font;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.AffineTransform;

public class Test
{
public static void main(String[] args)
{
try
{
Font font = new Font("黑体", Font.PLAIN, 30);
AffineTransform at = new AffineTransform();
FontRenderContext frc = new FontRenderContext(at, true, true);
GlyphVector gv = font.createGlyphVector(frc, "JinCeon"); // 要显示的文字
Shape shape = gv.getOutline(5, 30);
int weith = 200;
int height = 40;
boolean[][] view = new boolean[weith][height];
for (int i = 0; i < weith; 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 < weith; i++)
{
if (view[i][j])
{
System.out.print("@");// 替换成你喜欢的图案
} else
{
System.out.print(" ");
}
}
System.out.println();
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是基于51单片机的点阵输出字符并实现字符横向移动的代码: ```c #include <reg51.h> // 包含51单片机的头文件 #define uchar unsigned char // 定义 uchar 为 unsigned char 的缩写 // 定义需要输出字符,这里以字母A为例 uchar code charA[] = {0x00,0x18,0x24,0x42,0x42,0x7E,0x42,0x42}; // 定义点阵的位选信号和段选信号端口 sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; sbit SER = P2^0; sbit RCLK = P2^1; sbit SRCLK = P2^5; void delay(unsigned int i) // 延时函数 { while(i--); } void HC595SendData(uchar dat) // 74HC595数据发送函数 { uchar i; for(i=0; i<8; i++) { SRCLK = 0; SER = dat & 0x80; dat <<= 1; SRCLK = 1; } RCLK = 0; RCLK = 1; } void LEDDisplay(uchar dat[]) // 数码管动态扫描函数 { uchar i, j; for(j=0; j<8; j++) { LSA = j & 0x01; LSB = (j>>1) & 0x01; LSC = (j>>2) & 0x01; HC595SendData(~dat[j]); // 74HC595输出信号取反 delay(100); HC595SendData(0x00); } } void main() { uchar i, j; while(1) { for(i=0; i<8; i++) // 输出字符A { for(j=0; j<8; j++) { LEDBuffer[j] = charA[j]; } LEDBuffer[i] = 0x00; LEDDisplay(LEDBuffer); delay(500); } } } ``` 在这个代码中,我们首先定义了需要输出字符A的点阵数据。然后定义了点阵的位选信号和段选信号端口,以及74HC595数据发送函数和数码管动态扫描函数。在主函数中,我们通过循环输出字符A,并实现了字符横向移动的效果。具体实现方式是每次循环时,将字符A的第i列置为0,然后输出点阵上,再通过延时的方式实现移动的效果。 需要注意的是,在这个代码中我们使用了74HC595芯片来控制点阵输出。这是因为51单片机的IO口不能直接输出足够的电流驱动点阵,而74HC595芯片可以扩展IO口的输出电流,从而驱动点阵的显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值