• 大小: 69KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Java
  • 标签: JAVA  绘制  函数图像  

资源简介

* 这是一个简单的函数显示工具,用户输入简单函数,程序自动画出函数图像,有着完整的注释,十分容易理解 * 支持常数e, sin, cos, tan, ln, ^, 加减乘除括号以及它们的复合运算 * 只能有一个变量,而且必须是x,比如sinx, 敲击回车结束输入 * 显示出函数图像后,可以通过拖动滑块来改变图像显示的比例大小 * 用jdk1.6编译的,如果jdk版本低可能会出错

资源截图

代码片段和文件信息

/**
 *  @author: LiNianLong
 *  @school: xtu
 *  
 *  这是一个简单的函数显示工具,用户输入简单函数,程序自动画出函数图像
 *  支持常数e sin cos tan ln ^ 加减乘除括号以及它们的复合运算
 *  只能有一个变量,而且必须是x,比如sinx 敲击回车结束输入
 *  显示出函数图像后,可以通过拖动滑块来改变图像显示的比例大小
 *  用jdk1.6编译的,如果jdk版本低可能会出错
 **/

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.text.DecimalFormat;
import java.util.Stack;
import java.util.StringTokenizer;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class FunctionDraw extends Jframe {

JTextField txt1; // 显示光标此时的坐标位置的文本区
JTextField txt2; // 输入函数表达式的文本区
JLabel label; // 提示标签
JLabel zerolb; // 原点标签
JSlider slider; // 调整图片放缩比例的滑块
JPanel panel; // 包含组件的面板
DrawFunPanel drawpanel; // 绘制函数图像的面板
int SliderValue; // 滑块所在的刻度
Cursor crossCursor handCursor; // 鼠标光标
int W H; // 窗体的长和宽

public FunctionDraw(String title){
super(title); // 设置窗体标题
W = 800;
H = 600;

// 创建并设置提示标签
label = new JLabel(“请直接输入函数的表达式,如sinx“);
label.setFont(new Font(“楷体“ Font.BOLD 15));
label.setBounds((int)(W/12)3025020);

// 创建并设置文本区
txt1 = new JTextField(40);
txt2 = new JTextField(40);

txt1.setEditable(false);
txt1.setBounds((int)(W/12)525025);
txt2.setBounds((int)(W/12)5025025);

// 设置文本区输入监听
txt2.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
drawpanel.getInput(e.getActionCommand());
drawpanel.repaint();
}
});

// 设置文本区鼠标移动监听,显示当前坐标
this.addMouseMotionListener(new MouseMotionAdapter() {

@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseMoved(e);

double X Y; // 相对坐标
double sx sy; // applet中实际坐标
sx = e.getX();
sy = e.getY();

// 坐标变换
X = (double)(sx - 0.5 * W - 8) / SliderValue; // 减去边框占8像素
Y = (double)-(sy - 0.4 * H - 30) / SliderValue; // 减去标题栏占30像素

// 设置输出格式
DecimalFormat twoDigit = new DecimalFormat(“0.00“);
txt1.setText(“当前的坐标:“ + “x=“ + twoDigit.format(X) + “  y=“ + twoDigit.format(Y));
txt1.setFont(new Font(“楷体“ Font.PLAIN 15));

// 设置光标图形
crossCursor = new Cursor(Cursor.CROSSHAIR_CURSOR);
handCursor = new Cursor(Cursor.HAND_CURSOR);
if(sx > 0 && sx < W && sy > 0 && sy < 0.8 * H)
setCursor(crossCursor);
else
setCursor(handCursor);
}
});

// 创建并设置滑块
slider = new JSlider(JSlider.HORIZONTAL 0 100 50);
slider.setPaintLabels(true); // 添加默认刻度标签
slider.setPaintTicks(true); // 添加刻度标记
slider.setMajorTickSpacing(20); // 设置主刻度间隔
slider.setMinorTickSpacing(5); // 设置次刻度的间隔
slider.setBounds((int)(W/1.8)(int)(H*0.02)20060);

// 设置滑块监听
slider.addChangeListener(new ChangeListener() {

@Override

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-01-22 23:04  JAVA考试_函数显示工具\
     文件         301  2015-01-22 22:59  JAVA考试_函数显示工具\.classpath
     文件         405  2015-01-22 22:59  JAVA考试_函数显示工具\.project
     目录           0  2015-01-22 23:04  JAVA考试_函数显示工具\.settings\
     文件         598  2015-01-22 22:59  JAVA考试_函数显示工具\.settings\org.eclipse.jdt.core.prefs
     目录           0  2015-09-17 14:52  JAVA考试_函数显示工具\bin\
     文件        1857  2015-09-17 14:52  JAVA考试_函数显示工具\bin\DrawFunPanel.class
     文件         849  2015-09-17 14:52  JAVA考试_函数显示工具\bin\FunctionDraw$1.class
     文件        1882  2015-09-17 14:52  JAVA考试_函数显示工具\bin\FunctionDraw$2.class
     文件         962  2015-09-17 14:52  JAVA考试_函数显示工具\bin\FunctionDraw$3.class
     文件        3136  2015-09-17 14:52  JAVA考试_函数显示工具\bin\FunctionDraw.class
     文件        5255  2015-09-17 14:52  JAVA考试_函数显示工具\bin\FunctionValue.class
     文件       27423  2015-01-22 23:33  JAVA考试_函数显示工具\bin\tubiao.png
     目录           0  2015-01-22 23:33  JAVA考试_函数显示工具\src\
     文件       11912  2015-01-23 09:12  JAVA考试_函数显示工具\src\FunctionDraw.java
     文件       27423  2015-01-22 23:33  JAVA考试_函数显示工具\src\tubiao.png

评论

共有 条评论