C#窗口程序里面如何用鼠标点击一下并在该位置画一张图

C#窗口程序里面如何用鼠标点击一下并在该位置画一张图,第1张

控件的MouseDown事件里,处理画面的逻辑,以下是我写的示例代码,希望对你有帮助

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)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8038666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存