java 文字旋转

AI算法攻城狮
算法领域优质创作者
博客专家认证
2012-12-20 11:00:16
请问各位大虾,有没有什么方法能够让显示的字体旋转呢?
我想让文字不是水平显示,而是与水平线呈一定角度?比如垂直显示 ,谢谢
...全文
350 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AI算法攻城狮 2012-12-26
  • 打赏
  • 举报
回复
引用 4 楼 jia20003 的回复:
Java code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;……

问题已经解决,原来 Random random=new Random();
int angle=random.nextInt(360);
g2d.rotate(angle*Math.PI/ 180,23,23);
便可解决问题。
AI算法攻城狮 2012-12-25
  • 打赏
  • 举报
回复
引用 4 楼 jia20003 的回复:
Java code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;……

阅读您的代码之后,感觉基本思想是
①获取文字中心坐标
②任意角度旋转文字
③将原点坐标移到文字的中心
④在文字中心书写旋转文字
但是我没有实现任意旋转效果

我现在可以将旋转特定角度后的字移到对应坐标
这是不是要抽象出来一个类,这个类可以实现对于任意文字,任意角度,都可以经过运算,达到旋转要求,如果是这样,这个运算方法如何写,
还请赐教。
sake92 2012-12-21
  • 打赏
  • 举报
回复
同求解啊,围观中
AI算法攻城狮 2012-12-21
  • 打赏
  • 举报
回复

我现在想做一个棋子按随机角度摆放的棋盘(模拟现实中的棋子摆放),但我发现用
Random random=new Random();
int angle=random.nextInt(360);
g2d.rotate(angle*Math.PI/ 180);
只能实现
棋子上面的字是围绕棋子中心(像钟表上的时针一样)旋转,而以字自身的中心旋转,请给予赐教。
  • 打赏
  • 举报
回复
gloomyfish 2012-12-21
  • 打赏
  • 举报
回复

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class RotateTextDemo extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int x = 200;
	private int y = 200;

	public RotateTextDemo() {
		getContentPane().setLayout(new BorderLayout());
		JPanel testPanel = new JPanel(){

			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;

			protected void paintComponent(Graphics g) {

				// super.paintComponent(g);
				g.setColor(Color.RED);
				g.drawOval(x, y, 20, 20);
				
				// 
				Graphics2D g2d = (Graphics2D)g;
				String text = "Hello Java";
				Rectangle2D r = g2d.getFontMetrics().getStringBounds(text, g2d);
				g2d.translate(r.getX(), r.getY());
				g2d.rotate(-Math.PI);
				g2d.translate(-r.getCenterX(), -r.getCenterY());
				g2d.drawString(text, -100, -100);
				
			}
		};
		getContentPane().add(testPanel, BorderLayout.CENTER);
	}

	public static void main(String[] args) {
		RotateTextDemo frame = new RotateTextDemo();
		frame.setSize(600, 600);
		//frame.pack();
		// frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
看看这里!
limit111 2012-12-20
  • 打赏
  • 举报
回复
用Graphics画图的时候旋转一下坐标? 参考http://docs.oracle.com/javase/tutorial/2d/index.html

50,547

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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