我想用java的jai画文字,一串文字是沿着一个圆周画的,就是,这串文字形成一个圆,可以吗?

yyttrr2006 2005-11-29 09:36:56
我想用java的jai画文字,一串文字是沿着一个圆周画的,就是,这串文字形成一个圆,可以吗?
...全文
206 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
usxue 2005-12-03
  • 打赏
  • 举报
回复
不好意思,上面的例子已经是一个圆了,不是半圆,注释错了,呵呵……
usxue 2005-12-03
  • 打赏
  • 举报
回复

import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
import java.awt.geom.*;

public class ImgTest{
public static void main(String[] args) throws Exception{
final String str = "这是一个测试我想有个老婆";
final int x = 150;
final int y = 150;
final int d = 100;
BufferedImage bi = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = bi.createGraphics();
g2d.setBackground(Color.BLACK);
g2d.setColor(Color.white);
//半圆,如果想是一个圆的话,×2
double pre = Math.PI*2/str.length();
for(int i=0;i<str.length();i++){

AffineTransform rot = new AffineTransform();
rot.rotate(pre,x,y);

g2d.drawString(str.substring(i,i+1),(float)(x),(float)(y-d));
g2d.transform(rot);
}
//output image
FileOutputStream output = new FileOutputStream(new File("test.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(bi);
output.close();
}
}
yyttrr2006 2005-12-03
  • 打赏
  • 举报
回复
up
yyttrr2006 2005-12-01
  • 打赏
  • 举报
回复
up
yyttrr2006 2005-12-01
  • 打赏
  • 举报
回复
up
yyttrr2006 2005-11-29
  • 打赏
  • 举报
回复
up
yyttrr2006 2005-11-29
  • 打赏
  • 举报
回复
唉,没指望
yyttrr2006 2005-11-29
  • 打赏
  • 举报
回复
看来没人知道
niko7 2005-11-29
  • 打赏
  • 举报
回复
你说的应该是用文本的方法画图吧?
这样:
用圆周公式计算出轨迹,但是这个经过转换,得到坐标,然后输出到一个二维数组中。
最后按顺序输出二维数组。输出到控制台或者文本文件都可以。
yyttrr2006 2005-11-29
  • 打赏
  • 举报
回复
谢谢楼上的,不过我不是这个意思,我也不知道该怎么表达
就是一串字符本身形成一个弧
519632 2005-11-29
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;

public class ImgTest{
public static void main(String[] args) throws Exception{
final String str = "这是一个测试";
final int x = 150;
final int y = 150;
final int d = 100;
BufferedImage bi = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = bi.createGraphics();
g2d.setBackground(Color.BLACK);
g2d.setColor(Color.white);
for(int i=0;i<str.length();i++){
double jd=((Math.PI*2)/str.length())*i;
g2d.drawString(str.substring(i,i+1),(float)(x+Math.sin(jd)*d),(float)(y-Math.cos(jd)*d));
}
//output image
FileOutputStream output = new FileOutputStream(new File("C:\\test.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(bi);
output.close();
}
}
519632 2005-11-29
  • 打赏
  • 举报
回复
直接计算每个字的绝对位移,然后调用drawString(String str, int x, int y) 输出

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧