「java画图方程」java画图程序

博主:adminadmin 2023-01-16 15:03:06 387

本篇文章给大家谈谈java画图方程,以及java画图程序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java画一元二次方程的图形,a、b、c用三个滑竿JSlider改变值,具体见下图

按照你的要求编写的Java程序如下:

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Container;

import java.awt.Graphics;

import java.awt.GridLayout;

import java.util.ArrayList;

import java.util.Dictionary;

import java.util.Hashtable;

import java.util.List;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

public class KKK extends JFrame implements ChangeListener{

 Container con;

 JLabel jl1=new JLabel("a value");

 JLabel jl2=new JLabel("b value");

 JLabel jl3=new JLabel("c value");

 JPanel jp=new JPanel();

 JPanel jp1=new JPanel();

 JPanel jp2=new JPanel();

 JPanel jp3=new JPanel();

 JCurvePanel jcp=new JCurvePanel();

 JSlider js1=new JSlider(JSlider.HORIZONTAL,0,100,50);

 JSlider js2=new JSlider(JSlider.HORIZONTAL,0,100,50);

 JSlider js3=new JSlider(JSlider.HORIZONTAL,0,100,50);

 int a=1;

 int b=2;

 int c=1;

 KKK(){

  js1.setPaintTicks(true); 

  js1.setMinorTickSpacing(5); 

  js1.setMajorTickSpacing(100); 

  js1.setPaintLabels(true); 

        DictionaryInteger, Component labels = new HashtableInteger, Component(); 

        labels.put(0, new JLabel("0")); 

        labels.put(20, new JLabel("20")); 

        labels.put(40, new JLabel("40")); 

        labels.put(60, new JLabel("60")); 

        labels.put(80, new JLabel("80")); 

        labels.put(100, new JLabel("100")); 

        js1.setLabelTable(labels); 

        js2.setPaintTicks(true); 

        js2.setMinorTickSpacing(5); 

        js2.setMajorTickSpacing(100); 

        js2.setPaintLabels(true);

        js2.setLabelTable(labels); 

        js3.setPaintTicks(true); 

        js3.setMinorTickSpacing(5); 

        js3.setMajorTickSpacing(100); 

        js3.setPaintLabels(true);

        js3.setLabelTable(labels); 

  js1.addChangeListener(this);

  js2.addChangeListener(this);

  js3.addChangeListener(this);

  jp.setLayout(new GridLayout(3,1));

  jp1.add(js1);jp1.add(jl1);

  jp2.add(js2);jp2.add(jl2);

  jp3.add(js3);jp3.add(jl3);

  jp.add(jp1);jp.add(jp2);jp.add(jp3);

  con=getContentPane();

  jp.setBackground(Color.WHITE);

  con.add(jp,BorderLayout.EAST);

  con.add(jcp,BorderLayout.CENTER);

  setSize(700,500);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setLocationRelativeTo(null);

  setVisible(true);

 }

 public static void main(String[] args) {

  new KKK();

 }

 @Override

 public void stateChanged(ChangeEvent ce) {

  if(ce.getSource()==js1){

   a=js1.getValue();

  }

  if(ce.getSource()==js2){

   b=js2.getValue();

  }

  if(ce.getSource()==js3){

   c=js3.getValue();

  }

  repaint();

 }

 class JCurvePanel extends JPanel{

  JCurvePanel(){

   this.setBackground(Color.BLACK);

   this.setForeground(Color.WHITE);

  }

  public void paint(Graphics g){

   super.paint(g);

   int x0, y0; 

   x0 = this.getWidth() / 2; 

   y0 = this.getHeight() / 2;

   int triangleYX[]={x0-5,x0+5,x0};

   int triangleYY[]={50,50,45};

   g.setColor(Color.WHITE); 

   g.drawLine(x0, 50, x0, y0 * 2-50);

   g.fillPolygon(triangleYX, triangleYY, 3);

   for(int i=y0;i50;i-=10){

    g.drawLine(x0,i,x0+5,i);

   }

   for(int i=y0;iy0*2-50;i+=10){

    g.drawLine(x0,i,x0+5,i);

   }

   int triangleXX[]={x0*2-50,x0*2-50,x0*2-45};

   int triangleXY[]={y0-5,y0+5,y0};

   g.drawLine(50, y0, x0 * 2-50, y0);

   g.fillPolygon(triangleXX, triangleXY, 3);

   for(int i=x0;i50;i-=10){

    g.drawLine(i,y0,i,y0-5);

   }

   for(int i=x0;ix0*2-50;i+=10){

    g.drawLine(i,y0,i,y0-5);

   }

   ListInteger listx=new ArrayListInteger();

   ListInteger listy=new ArrayListInteger();

   

   for(int j=-200;j200;j++){

    listx.add(j);

    listy.add(-(a*j*j+b*j+c));

   }

   for (int i = 0; i  listx.size()-1; i++) {

    g.drawLine(listx.get(i)+x0,listy.get(i)+y0, listx.get(i+1)+x0, listy.get(i+1)+y0);

   }

  }

 }

}

运行结果:

用java编写一个简单的画图程序。不用复杂

import java.awt.*;

import java.awt.event.*;

import java.awt.geom.*;

import javax.swing.*;

//不规则图形的绘制

public class IrregularShapeDemo extends JFrame {

GeneralPath gPath= new GeneralPath(); //GeneralPath对象实例

Point aPoint;

//构造函数

public IrregularShapeDemo() {

super("不规则图形的绘制"); //调用父类构造函数

enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允许事件

setSize(300, 200); //设置窗口尺寸

setVisible(true); //设置窗口可视

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序

}

public void paint(Graphics g) { //重载窗口组件的paint()方法

Graphics2D g2D = (Graphics2D)g; //获取图形环境

g2D.draw(gPath); //绘制路径

}

public static void main(String[] args) {

new IrregularShapeDemo();

}

protected void processMouseEvent(MouseEvent e) { //鼠标事件处理

if(e.getID() == MouseEvent.MOUSE_PRESSED) {

aPoint = e.getPoint(); //得到当前鼠标点

gPath = new GeneralPath(); //重新实例化GeneralPath对象

gPath.moveTo(aPoint.x,aPoint.y); //设置路径点

}

}

protected void processMouseMotionEvent(MouseEvent e) { //鼠标运动事件处理

if(e.getID() == MouseEvent.MOUSE_DRAGGED) {

aPoint = e.getPoint(); //得到当前鼠标点

gPath.lineTo(aPoint.x, aPoint.y); //设置路径

gPath.moveTo(aPoint.x, aPoint.y);

repaint(); //重绘组件

}

}

}

java 关于,画一个一元二次方程的/

scaleFactor按照引文意思为比例因子。进代表缩放比例的。

如果你想画y=2x^2+8x+3 那只需要把公式带上就可

scaleFactor =2.0;

polygon.addPoint(x+ 200, 200 - (int)(scaleFactor * x * x)+8*x+3);

至于你说的曲线的曲率是其实是点的连线拼出来的 决定曲率的其实是你添加的这些点,当然在这里就是你的公式决定的点的添加

g.drawPolyline(polygon.xpoints,polygon.ypoints, polygon.npoints);就更好理解了

就是把之前构建的多边形绘制出来

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