void MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return
}
//给控件创建一个背景图片,我这里是用Panel控件实现的
if (null == panel1.BackgroundImage)
{
panel1.BackgroundImage = new Bitmap(panel1.Width, panel1.Height)
}
//在背景图片上绘制一个长100,高50的图片
Graphics g = Graphics.FromImage(panel1.BackgroundImage)
g.DrawImage(Image.FromFile(@"XXXXX\XXXX.jpg"),
e.X, e.Y, 100f, 50f)
g.Save()
//刷新绘制的区域,让图片显示出来
panel1.Invalidate(new Rectangle(e.X, e.Y, 100, 50))
}
你问得太笼统了。函数还分为线性函数,非线性函数。
线性的还分一次函数,二次函数...
图形画的方法都不一样
举个例子,一次函数是最简单的:(直线)
代入两个任意不同值到x,求出y。得出两个坐标(x0,y0),(x1,y1),用DrawLine()方法绘制即可
二次的就比较麻烦了。你得先确定你要绘制线的范围,即你的x轴y轴的大小(毕竟线是无限长而屏幕有限).
同样代入一系列点,例如-5,-4,-3,-2,-1,0,1...5算出对应的y值,放到数组中。用绘制曲线的函数绘制。。
还有一种方法,利用椭圆函数来。。更加麻烦。不细表了。
离散函数,你得求区间。同样也是代入数值。
PS
每个字都是亲手写的。
另,楼上回答的什么玩意儿?!
import java.applet.*import java.awt.*
import java.awt.event.*
public class Tester extends Applet implements ActionListener
{
Button btn1,btn2,btn3,btn4
public void init(){
setLayout(null)
btn1=new Button("绘制直线")
btn2=new Button("绘制矩形")
btn3=new Button("绘制圆")
add(btn1)
add(btn2)
add(btn3)
btn1.setBounds(10, 60, 60, 20)
btn2.setBounds(10, 90, 60, 20)
btn3.setBounds(10, 120, 60, 20)
btn1.addActionListener(this)
btn2.addActionListener(this)
btn3.addActionListener(this)
validate()
setVisible(true)
}
public void start(){
}
public void actionPerformed(ActionEvent e)
{
Graphics g=this.getGraphics()
if(e.getSource()==btn1)
{
g.drawLine(200, 100, 300, 200)
}
else if(e.getSource()==btn2)
{
g.drawRect(200, 250, 200, 200)
}
else
{
g.drawArc(200, 500, 200, 200, 0, 360)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)