十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用java绘制弧形文字的方法是调用java 2d图形处理的api实现的。
创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元东辽做网站,已为上家服务,为东辽各地企业和个人服务,联系电话:18982081108
完整代码如下:
// 引入需要的jar包
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//定义一个类
public class FontPanel extends JPanel {
//定义一个画板,入参是图形g
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font f = new Font("SansSerif", Font.BOLD, 14); 设置字体加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);设置字体加粗,斜体
FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics
FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics
String s1 = "Java ";
String s2 = "Source and Support"; 定义字符串
String s3 = " java 字体变形学习";
int width1 = fm.stringWidth(s1); 设置宽度
int width2 = fim.stringWidth(s2);
int width3 = fm.stringWidth(s3);
Dimension d = getSize(); 设置二维图形的维度
int cx = (d.width - width1 - width2 - width3) / 2; 计算绘制字体的x轴
int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();计算绘制字体的y轴
g.setFont(f);
g.drawString(s1, cx, cy);
cx += width1;
g.setFont(fi);
g.drawString(s2, cx, cy);
cx += width2;
g.setFont(f);
g.drawString(s3, cx, cy);
}
main方法测试:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("NotHelloWorld2");
frame.setSize(350, 200);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new FontPanel());
frame.show();
}
}
运行结果:
java中弧度转化为角度,通过math类来操作,代码如下:
// format的模板
java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");
// 初始化数据
int a = 3;
int b = 4;
int c = 5;
// 计算弧度表示的角
double B = Math.acos((a*a + c*c - b*b)/(2.0*a*c));
// 用角度表示的角
B = Math.toDegrees(B);
// 格式化数据,保留两位小数
String temp = df.format(B);
System.out.println(temp);
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class TestDrawArc extends JFrame{
MyCanvas1 cnv;
public TestDrawArc(){
super("半圆");
cnv = new MyCanvas1();
this.add(cnv);
this.setSize(500, 500);
this.setVisible(true);
}
public static void main(String[] args) {
new TestDrawArc();
}
}
class MyCanvas1 extends Canvas{
public MyCanvas1(){
super();
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.red);
g.drawArc(50, 50, 300, 300, 0, 180);
}
}
drawArc有6个参数:
前面两个圆的外切矩形左上角的坐标点,中间两个是外切矩形的宽和高,倒数第二个是弧的起始角度,最后一个是弧的跨越角度。
画圆一般通过继承JPanel 或者JFrame ,通过调用panel或者frame中的Graphics实例完成画图。
java绘图的基本原理:画一个圆
import javax.swing.*;
import java.awt.*;
public class DrawCicle extends JFrame{MyPanel mp=null;public static void main(String[] args) {DrawCicle dc=new DrawCicle();}
public DrawCicle(){mp =new MyPanel();this.add(mp);this.setSize(300, 250);
this.setLocation(600, 300);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE)this.setVisible(true);}}