关于java绘制点阵的信息

博主:adminadmin 2022-12-08 14:03:07 96

今天给各位分享java绘制点阵的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

谁会用java输出点阵格式的名字啊!

下面的方法可以实现,它可以按照指定的字体将字符串转换为点阵的2维数组:

import java.awt.Font;

import java.awt.Shape;

import java.awt.font.FontRenderContext;

import java.awt.font.GlyphVector;

import java.awt.geom.AffineTransform;

import javax.swing.plaf.metal.DefaultMetalTheme;

public class FontTest {

public static void main(String[] args) {

try {

DefaultMetalTheme theme = new DefaultMetalTheme();

Font font = new Font(theme.getWindowTitleFont().getFamily(), Font.PLAIN, 30); // 创建字体

AffineTransform at = new AffineTransform();

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

GlyphVector gv = font.createGlyphVector(frc, "ABC a $@#*^"); // 要显示的文字

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();

}

}

}

求程序画的 点阵渐开线(点阵螺旋线)代码 啥语言都可 最好是JAVA C# AS3 等 当然其它语言也可以 谢谢

用Java语言画的点阵渐开线代码如下

import java.awt.Graphics;

import java.util.ArrayList;

import java.util.List;

import javax.swing.JFrame;

public class Involute extends JFrame{

 Involute(){

  super("点阵渐开线");

  setSize(400, 400);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setLocationRelativeTo(null);

  setVisible(true);

 }

 public void paint(Graphics g){

  super.paint(g);

  double alfa=10;

  double r=10;

  double theta=0;

  ListInteger lx=new ArrayListInteger();

  ListInteger ly=new ArrayListInteger();

  int CenterX=this.getWidth()/2; 

  int CenterY=this.getHeight()/2;

  for(int i=0;i60*2;i++){

   int x=CenterX+(int)(r*Math.cos((theta+alfa)*Math.PI/180)+(theta+alfa)*Math.PI/180*r*Math.sin((theta+alfa)*Math.PI/180));

   lx.add(x);

   int y=CenterY-(int)(r*Math.sin((theta+alfa)*Math.PI/180)-(theta+alfa)*Math.PI/180*r*Math.cos((theta+alfa)*Math.PI/180));

   ly.add(y);

   theta=theta+6;

  }

  for(int i=0;i60*2;i++){

   g.fillOval(lx.get(i), ly.get(i), 5, 5);

  }

 }

 public static void main(String[] args) {

  new Involute();

 }

}

运行结果

谁做过 用java 生成点阵字库的程序

首先你应该知道,Java的程序必须运行在有JVM(Java虚拟机)的机器上。没有JVM的EXE程序文件也不能执行。

Java生成EXE文件其实很简单:

1)将编好的Java程序(必须含有main方法,这是程序的入口)导出成jar包,这个jar包双击就可以运行了。

2)用将这个jar包加个外壳,扩展名就是.exe的文件了。这样的有很多,比如:exe4j、JSmooth等。这两个的操作都很简单。

如果有什么问题可以给我发信息。

补充:用Eclipse导出jar文件过程:

右键"项目"-- Export -- Java -- JAR file -- 选择项目和输出路径(文件名) -- Finish

请教JAVA牛人,怎么把通过JAVA查一个汉字的数字点阵

以前DOS时代搞过这个。如果你能拿到GB_2312字库,就能做到。将Unicode码转变为GB码,然后高字节-0xA0,乘以94,再加低字节-0xA0,这个结果乘以32,去字库文件里从头偏移这么多,读32字节,按位每16位一行画点就是汉字图形。

图形好像是翻转的,时间长了具体记不清了。

试验了一下,记错了一点。是减手0xA1。下面的这个类的静态方法getDotMap获取一个字的32字节的点阵。每位为1时应该绘制,0时不绘制。

public class ChineseReader extends JFrame{

private static byte[][] dotMap;

static{

try{

FileInputStream dotMapFile=new FileInputStream("hzk16");

dotMap=new byte[dotMapFile.available()][32];

for(int i=0;idotMap.length;i++){

dotMapFile.read(dotMap[i]);

}

dotMapFile.close();

}

catch(FileNotFoundException ex){

ex.printStackTrace();

}

catch(IOException ex){

ex.printStackTrace();

}

}

public static short[] getDotMap(char c){

short[] buffer=new short[16];

int gbCode=Charset.forName("GB2312").encode(String.valueOf(c)).getShort()0xFFFF;

ByteBuffer buf=ByteBuffer.wrap(dotMap[((gbCode8)*94+(gbCode0xFF))-0x3BBF]);

for(int i=0;i16;i++){

buffer[i]=buf.getShort();

}

return buffer;

}

}

假设汉字库文件以“hzk16”命名,存放在同一文件夹中。你自己找不到16点阵汉字库时,找个UCDOS下载,从中能找到的。文件名就是HZK16。

java绘制点阵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java绘制点阵的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。