java编程绘制正弦曲线。
定义一个绘图面板,该类继承javax.swing.Panel类,覆盖paintComponent方法。该方法调用参数Graphicsg的绘图方法绘图。由于Java的Gra...
定义一个绘图面板,该类继承javax.swing.Panel类,覆盖paintComponent方法。该方法调用参数Graphics g的绘图方法绘图。由于Java的Graphics中没有画点的方法,点可以用长度为1的线段表示
展开
2个回答
2013-10-26
展开全部
写得比较简单哈。
package OnlineUserCount;
import java.awt.*;
import javax.swing.*;
public class Sin extends JPanel{
private double x;
private double y;
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
g.setColor(Color.WHITE);//设置面板背景色
g.fillRect(0, 0, 400, 300);//填充面板
g.setColor(Color.RED);//设置画线的颜色
for(x=0;x<=360;x+=0.1)//一个周期
{
y=Math.sin(x*Math. PI/180);//转化为弧度,1度=π/180弧度
y=(100+80*y);//便于在屏幕上显示
//g.drawString(".",(int)x,(int)y);//用这种方式也可以
g.drawLine((int)x, (int)y, (int)x,(int) y);//画点
}
}
public static void main(String []args){
Sin s= new Sin();
JFrame j=new JFrame();
j.setTitle("一个周期的正弦曲线");
j.add(s);
j.setSize(400, 300);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setVisible(true);
}
}
//效果截图
package OnlineUserCount;
import java.awt.*;
import javax.swing.*;
public class Sin extends JPanel{
private double x;
private double y;
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
g.setColor(Color.WHITE);//设置面板背景色
g.fillRect(0, 0, 400, 300);//填充面板
g.setColor(Color.RED);//设置画线的颜色
for(x=0;x<=360;x+=0.1)//一个周期
{
y=Math.sin(x*Math. PI/180);//转化为弧度,1度=π/180弧度
y=(100+80*y);//便于在屏幕上显示
//g.drawString(".",(int)x,(int)y);//用这种方式也可以
g.drawLine((int)x, (int)y, (int)x,(int) y);//画点
}
}
public static void main(String []args){
Sin s= new Sin();
JFrame j=new JFrame();
j.setTitle("一个周期的正弦曲线");
j.add(s);
j.setSize(400, 300);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setVisible(true);
}
}
//效果截图
2013-10-26
展开全部
可以用FLASH实现
i = 0;
_root.createEmptyMovieClip("mc", 5);
_root.createTextField("txt1", 6, 100, 200, 100, 20);
_root.createTextField("txt2", 7, 460, 200, 100, 20);
txt1.text = "(0, 0)";
txt1.selectable = false;
txt2.text = "(360, 0)";
txt2.selectable = false;
with (mc) {
lineStyle(1, 0x000000, 100);
moveTo(100, 50);
lineTo(100, 300);
moveTo(50, 200);
lineTo(500, 200);
// 原点
moveTo(100, 200);
lineStyle(1, 0xff0000, 100);
}
onEnterFrame = function () {
//向右平移100像素
x = 100 + i;
// 原点横坐标
y = 200 - 100 * Math.sin(i * Math.PI / 180);
mc.lineTo(x, y);
i++;
if (i >= 360) {
delete onEnterFrame;
}
};
i = 0;
_root.createEmptyMovieClip("mc", 5);
_root.createTextField("txt1", 6, 100, 200, 100, 20);
_root.createTextField("txt2", 7, 460, 200, 100, 20);
txt1.text = "(0, 0)";
txt1.selectable = false;
txt2.text = "(360, 0)";
txt2.selectable = false;
with (mc) {
lineStyle(1, 0x000000, 100);
moveTo(100, 50);
lineTo(100, 300);
moveTo(50, 200);
lineTo(500, 200);
// 原点
moveTo(100, 200);
lineStyle(1, 0xff0000, 100);
}
onEnterFrame = function () {
//向右平移100像素
x = 100 + i;
// 原点横坐标
y = 200 - 100 * Math.sin(i * Math.PI / 180);
mc.lineTo(x, y);
i++;
if (i >= 360) {
delete onEnterFrame;
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询