用vb编写图形

合集下载

VB用Picture控件绘制图形并保存

VB用Picture控件绘制图形并保存

Co4;bmp"
'设置或返回对话框的默认文件扩展名
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
Rem 由绝对路径变相对路径 CurPath = App.Path AbsPath = CommonDialog1.FileName RPath = Replace(AbsPath, CurPath, vbNullString)
CommonDialog1.InitDir = App.Path CommonDialog1.FileName = "abcp"
'设置默认路径
CommonDialog1.DialogTitle = "请选择的模板文件名"
CommonDialog1.Filter = "位图文件(*.bmp)|*.bmp"
y = Sin(x * 3.1415926 / 180) Picture1.PSet (x, y) Next
Picture1.CurrentX = 10 Picture1.CurrentY = 0 Picture1.Font = "黑体" Picture1.FontSize = 20 Picture1.ForeColor = 16777215 Picture1.Print "ABCDF中国"
End Sub Rem 绘曲线图 Private Sub Command1_Click()
Dim x As Integer Dim y As Single
Picture1.AutoRedraw = True Picture1.Cls Picture1.Scale (0, 1.2)-(360, -1.2) Picture1.Line (0, 0)-(360, 0) For x = 0 To 360

利用VB实现AutoCAD二次开发中参数化绘图

利用VB实现AutoCAD二次开发中参数化绘图

利用VB实现AutoCAD二次开发中参数化绘图作者:陈炜来源:《中国新技术新产品》2014年第13期摘要:通过参数化绘图的背景分析和AutoCAD二次开发五种常用工具的分析比较,利用VB对AutoCAD二次开发实现参数化绘图是可行的。

再利用弹簧绘制为例详细描述了VB实现参数化绘图的具体步骤。

更加确定了VB实现AutoCAD二次开发中参数化绘图是具有优势的,它缩短绘图操作时间,提高工作效率。

关键字:参数化绘图;AutoCAD ;二次开发;VB中图分类号:TP39 文献标识码:A一、实现参数化绘图的背景AutoCAD作为一款工程方面非常出色的软件,因其优秀图形处理能力和通用性而得到广泛普及与应用,正因为该软件通用性很强,从而在进行具体图形绘制和数据处理综合应用的时候自身所具有的功能就显得相形见绌。

比如在机械制图时,如螺母、垫圈、轴承、弹簧、齿轮等一些标准件、常用件的设计和绘制,都需要用户逐一绘制,这些标准件都会有大量数据,用户绘图时必须查找各种标准,不仅费时而且容易出错。

为了解决上述问题,尽可能的不重复劳动,提高设计效率,减少设计开发周期,因此我们想到了实现图形的自动绘制方法。

根据机械制图中各种标准件结构特点,同一个系列内,它们基本结构相似,仅是尺寸上有些变化。

对于齿轮、弹簧等常用件,尽管不能像螺栓、螺母那样完全实现标准化,但可以实现部分结构标准化。

比如弹簧,我们只需输入起始半径、垂直增量、水平增量、圈数、分段数等参数,即可编程实现该二维或三维图形的自动绘制。

二、VB实现参数化绘图的优势为了使重复性较大的计算绘图工作量减小和更加规范准确,AutoCAD提供了二次开发的功能接口。

进行其二次开发的常用工具目前大体有五种,分别是ADS、ObjectARX、AutoLISP、.NET、VBA。

其中,ADS是AutoCAD的C语言开发系统,直接利用C语言编译器,因涉及到C语言的编程它的开发不易上手并且难度较大;ObjectARX的功能强大,效率较高,但是开发人员必须掌握VC++,难度很大,而且开发效率不高,容易出现内存泄漏;AutoLISP语言虽然其语法规则简单、灵活,但是缺乏综合性的开发环境,综合能力差;.NET 是微软新一代技术平台,功能强大,但对开发环境要求较高,而且可供学习参考的资料较少;VBA即McrosoftOffice中的Visual Basic(简称VB) for Applications开发环境,被集成到AutoCAD中,从AutoCADR14版本以后,就增加了 ActiveX Automation 自动化服务的功能。

用VB制作李萨如图形动态演示程序

用VB制作李萨如图形动态演示程序

1 引⾔ 李萨如图形是⼀个质点的运动轨迹[1],该质点在两个垂直⽅向的分运动都是简谐运动。

李萨如图形是物理学的重要内容之⼀,在⼯程技术领域也有很重要的应⽤。

利⽤李萨如图形可以测量未知振动的频率和初相位,掌握李萨如图形的形成过程有很重要的意义。

因⽽动态显⽰李萨如可以深⼊理解其形成过程。

2 李萨如图形的形成 假定形成李萨如图形的两个简谐运动,⼀个在X轴上,⼀个在Y轴上, 它们的运动⽅程为(假设它们的振幅相等):它们的合运动轨迹就是李萨如图形。

为了能够形象地描述李萨如图形的形成过程,⼀般是把X轴和Y轴上的简谐运动分别⽤旋转⽮量图来描述,如图1所⽰。

由上式计算出不同时刻的质点的坐标(x,y),依次连接这些点,得到的图形就是李萨如图形。

图1 李萨如图形的形成过程 3 李萨如图形动态演⽰的制作原理 为了动态演⽰李萨如图形的形成过程,需要把描述两个简谐运动的旋转⽮量的运动过程和它们的合运动过程动态地画出来。

具体的做法是: (1)画出描述X、Y⽅向简谐运动的旋转⽮量的参考图,分别由两条垂直的直线,⼀个圆构成; (2)通过计算,分别画出从圆⼼出发的代表X、Y⽅向简谐运动旋转⽮量位置的直线; (3)画出合运动的定位线,得到属于李萨如图形的点的坐标,如果是第⼀个点,则直接描点;否则与前⼀点相连,得到质点的运动轨迹; (4)擦去两个旋转⽮量和合运动定位线; (5)继续计算下⼀点的坐标,再回到第2步重复进⾏; (6)直到暂停或终⽌程序运⾏。

按照以上的算法,⽤VB6.0编制程序[2, 3]。

运⾏程序,发现在擦去合运动的定位线的同时,把X、Y⽅向简谐运动的旋转⽮量图和李萨如图形也擦去了⼀部分。

例如图1中的A、B、C、D和E点等都被擦去,经过⼀段时间以后,X、Y⽅向简谐运动的旋转⽮量图和李萨如图形都变成了虚线图,不再是⼀幅完整的图形。

为了得到良好的视觉效果,应该使上述被擦掉的部分能够及时补画上。

对于X、Y⽅向简谐运动的旋转⽮量图,由于它是由规则的直线和圆画出的,因⽽再次重画相应的直线和圆即可。

vb3D绘图示范代码

vb3D绘图示范代码

Visual Basic 3D 绘图示例
以下是 Visual Basic 中绘制 3D 线的示例代码:
在这段代码中,定义了一个 Form1 类,该类重写了 Paint 事件处理程序。

在事件处理程序中,它创建了一个 3D 矩阵,并使用它将两个 Imports Public Class
Private Sub As Object As Handles Me
Dim As New
305040100200300
Dim As New 000
Dim As New 100100100
Dim As Dim As
Dim As
End Sub
Private Function As As Dim As Integer CInt Me Dim As Integer CInt Me Return New
End Function End Class
Public Class
3D 点转换并投影到 2D 平面上。

然后,它使用Graphics对象的DrawLine方法连接这两个点。

请注意,这只是一个简单的示例,旨在演示 Visual Basic 中 3D 绘图的基本概念。

通常,一个完整的 3D 图形系统会包括额外的类和函数,用于更高级的 3D 操作,例如照明、阴影和透视投影。

vb图形控件和图形方法

vb图形控件和图形方法

二.AutoSize 属性(逻辑类型)
➢ AutoSize属性值为Ture时,图片框的边界会 随着所装入图片的大小变化而变化。此时在设 计窗体过程中就应该特别小心,图片将不考虑 窗体上其他控件而自动调整大小,可能导致意 想不到的后果,如覆盖其他控件等。所以应慎 用,以免影响窗体界面的完整性。
三.Align属性(整数0~4)
二.Stretch属性(逻辑类型)
➢影响框控件Stretch属性设置为Fakse(默认值)时,可 根据图片的大小手工调整控件的大小,以达到满意的显 示效果;当设置为True时,将根据控件的大小来自动调 整图片的大小,这时若调整影像框的大小,可能会使图 片变形,影响图像的真实显示。
阶段2 影像框控件常用事件
任务2 图片框控件
阶段1 图片框控件常用属性 阶段2 图片框控件常用方法
阶段1 图片框控件常用属性
一.Picture 属性(字符串类型)
⑴ 设计时选取:在界面设计时,选中该图片框控件属性 窗口中该属性,在弹出的Load_Picture对话框中选择所 要显示的图片文件,相应的图片随之被加载到图片框中。 ⑵ 运行时装入:程序运行时,可用LoadPicture函数装 入图片到图片框控件中。
ScaleWidth属性:该属性值为容器自身的宽度值。 ScaleHeight属性:该属性值为容器自身的高度值。 CurrentX、CurrentY属性:分别表示当前点在容器内
的横坐标、纵坐标。
阶段2 改变容器坐标系的Scale方法
➢容器坐标系中,坐标系刻度单位的默认值为 “缇”(1缇≈0.01764毫米),容器的最小坐 标值为左上角坐标,容器的最大坐标值为右下 角坐标。 ➢利用Scale方法可以改变原点的坐标并随之改 变最大坐标值。 格式:容器名.Scale (x1,y1)-(x2,y2)

vb动态爱心代码

vb动态爱心代码

vb动态爱心代码VB动态爱心代码是一种在Visual Basic程序开发中常用的代码技术,它可以通过编写一定的代码实现爱心动态效果的展示。

这种技术常常被应用于网页制作、软件UI 设计和图形动画等领域中,达到提升用户体验、增强视觉效果等诸多效果。

下面,本文将对VB动态爱心代码进行详细阐述。

一、VB动态爱心代码的基础原理VB动态爱心代码其实是基于数学图形学的基础原理实现的。

具体来说,就是通过矢量、二维变换等于一系列的计算,将爱心的形状固定在一个特定的坐标轴上,并且在此基础上完成了一些重要属性的变化,如颜色、大小等,从而实现了爱心的动态展示。

二、VB动态爱心代码的编写过程1、新建VB程序首先,在Visual Basic开发环境中,需要新建一个VB窗体程序,并且添加相应的控件和属性。

2、编写相应代码在VB窗体程序中,需要通过编写相应的代码,实现爱心的动态展示。

由于本文的主要重点是VB动态爱心代码的编写,因此以下将对部分核心代码进行详细说明。

Dim X, Y, a, b, T, m As Single m = 50 a = 5 'a表示心形图纸上的横向半轴长 b = 4 'b表示心形图纸上的纵向半轴长 T = 0.1 随着上述初始值的赋值,心形图就可以顺利地生成。

3、实现效果最后,在编写完相应的代码之后,就可以完成VB动态爱心代码的应用,并且实现特定效果的展示,使爱心形状呈现出不同的运动轨迹和颜色特效,同时提升动态效果的视觉效果。

三、VB动态爱心代码的应用范围VB动态爱心代码广泛应用于软件开发、网页设计、图形动画等领域,具有良好的可移植性和易用性,在这些领域中,VB动态爱心代码的应用有以下优点:1、提升用户体验通过VB动态爱心代码的应用,可以给用户带来非常好的视觉体验,特别是在软件UI界面设计和网页设计中,可以增强产品、品牌的代表性。

2、增强视觉效果VB动态爱心代码具有较强的可视化效果,通过灵活组合不同颜色,形状等要素,可以展示出丰富的图形视觉效果,提升软件、网页等产品在用户中的美感和可读性。

VB_绘图_直线_圆_矩形_自由绘图_实例

VB_绘图_直线_圆_矩形_自由绘图_实例

VB 绘图要求:在VB窗口中,添加一个Picture控件,在该控件中任意点击,拖拽画图画直线Dim a As IntegerDim b As IntegerPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 Thena = xb = yEnd IfEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenPicture1.ClsPicture1.Line (a, b)-(x, y)End IfEnd Sub画矩形Dim a As IntegerDim b As IntegerPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 Thena = xb = yEnd IfEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenPicture1.ClsPicture1.Line (a, b)-(a, y)Picture1.Line (a, b)-(x, b)Picture1.Line (x, b)-(x, y)Picture1.Line (a, y)-(x, y)End IfEnd Sub画圆Dim a As IntegerDim b As IntegerPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 Thena = xb = yEnd IfEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenPicture1.ClsPicture1.Circle (a, b), Sqr((x - a) ^ 2 + (y - b) ^ 2)End IfEnd Sub自由绘图Dim a As IntegerDim b As IntegerPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 Thena = xb = yEnd IfEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenPicture1.PSet (x, y)End IfEnd Sub实例:设计一个窗口,效果如下图,要求设置四个单选框,分别为画直线、画圆、画矩形、自由绘图,选中任意一项,便可在左侧的picture控件中任意地方拖拽出相应的图形。

VB6绘图

VB6绘图
2014-9-28 华南理工学化学与化工学院方利国开发
13
计算控件的大小代码
图片框控件: pyh = Picture1.Height pxw = Picture1.Width Print "pxw="; pxw, "pyh="; pyh 窗体控件: yh = Form1.Height xw = Form1.Width Print xw, yh
2014-9-28
华南理工学化学与化工学院方利国开发
26
椭圆绘制
命令:Circle (10000, 5000), 3000, vbRed, 0, 0, 2 Circle (10000, 5000), 3000, vbBlue, 0, 0, 0.5
2014-9-28
华南理工学化学与化工学院方利国开发
Picture1.Line (1000, 1000)-(1000, 5000), RGB(0, 0, 255)’颜色设置蓝 Picture1.Line (1000, 1000)-(9000, 1000), RGB(0, 255, 0)’颜色设置绿 Picture1.Line (1000, 5000)-(9000, 1000), RGB(255, 0, 0) ’颜色设置红 得下图3。
VB6.0 绘图基础
华南理工大学化学与化工学院方利国
2014-9-28
华南理工学化学与化工学院方利国开发
1
1、绘图空间的设置
在VB6.0中绘图其实和手工在图纸上绘图 是相当的,手工绘制需要的一些准备工作, 如图纸、铅笔、橡皮擦、三角板、圆规等 工具对应成计算中的各种设置和命令,绘 图时要做的第一件事是准备好图纸。在 VB6.0中常用的图纸是窗体及图片框控件, 当然其它能存放其他控件的控件均可以。

vb 第5课 GDI图形绘制

vb  第5课 GDI图形绘制

功能描述
绘制圆弧 椭圆轮廓线 扇形轮廓线 多边形轮廓线 绘制矩形线
绘图函数
DrawLine FillEllipse FillPie FillPolygon FillRectangle
功能描述
绘制直线 填充椭圆区域 填充扇形区域 多边形区域 矩形区域
以Draw为前缀的函数用于绘制图形 以Fill为前缀的函数用于区域填充
Graphice对象坐标变换方法
方法名 TranslateTransform ScaleTransform RotateTransform ResetTransform 功能 平移 缩放 旋转 还原 使用样例 TranslateTransform(40,30) ,将 (40,30) 设为原点 ScaleTransform(2,3) ,按目前的宽的 2 倍, 高的3倍放大 RotateTransform(-30) ,将坐标系逆时针 旋转30度 ResetTransform(),还原为默认的坐标
例如dimmecreategraphicsgclearcoloraqua绘制方法图形绘制通过绘图函数来完成绘图函数绘图函数功能描述绘图函数功能描述drawarc绘制圆弧drawline绘制直线drawellipse椭圆轮廓线fillellipse填充椭圆区域drawpie扇形轮廓线fillpie填充扇形区域drawpolygon多边形轮廓线fillpolygon多边形区域drawrectangle绘制矩形线fillrectangle矩形区域以draw为前缀的函数用于绘制图形以fill为前缀的函数用于区域填充坐标系在gdi中对象坐标系是以像素为单位像素是指屏幕上的亮点每个像素都有一个坐标点与之对应
图片框主要用于显示静态图像,常用的事件有Click和DoubleClick事件。

用VB实现函数图形的绘制

用VB实现函数图形的绘制

用VB实现函数图形的绘制作者:白晨希朱长江来源:《电脑知识与技术》2013年第17期摘要:为了快速准确的绘制出常用函数的图形,在研究VB6.0绘图功能的基础上,设计制作一个应用程序,实现绘制常用函数图形的功能。

关键词:绘制图形; Visual Basic;函数图形中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)17-3975-02传统的程序设计语言如C语言实现绘制图形比较困难,而使用Visual Basic 6.0(简称VB)可以非常轻松地绘制图形。

VB提供了强大的绘图功能,可以使用绘图方法,也可以使用图形控件或API函数等来实现。

该文研究了使用VB 6.0绘制图形的属性和方法,制作一个应用程序,实现绘制常用初等函数图形的功能。

1 绘图相关知识1.1 绘图坐标在绘制图形前需要先确定坐标系,选择正确的坐标系才能使图形完整的显示出来。

坐标系由坐标原点、坐标度量单位和坐标轴方向决定。

在VB中,容器对象如窗体和图片框均可绘制图形,其默认坐标系的坐标原点为对象的左上角,坐标度量单位为Twip(缇),水平轴正方向向右,垂直轴正方向向下,如图1所示。

图1 默认坐标系图2 重新定义坐标系根据所绘制的函数图形的特点,需要重新定义坐标系,可使用Scale方法定义坐标系[1]。

其基本格式为:[对象名.]Scale [(x1,y1)-(x2,y2)],其中省略对象名表示窗体对象,(x1,y1)和(x2,y2)为对象左上角和右下角的坐标。

例如,在窗体上绘制函数[y=x2]的图形,可定义坐标系如下:Scale (-10, 10)-(10, -10),如图2所示。

1.2 绘图属性在绘制图形时,需要设置容器对象的绘图属性[2],常用的属性有:CurrentX和CurrentY (当前坐标),DrawWidth(线条宽度),ScaleLeft和ScaleTop(容器对象的左上角坐标),ScaleWidth(容器对象的内部宽度),ScaleHeight(容器对象的内部高度)。

VB6的绘图方法与常用函数

VB6的绘图方法与常用函数

VB6的绘图方法与常用函数在VB6中,绘图是一项非常常见的操作。

它可以用于创建图形界面元素、绘制图表、设计游戏界面等各种应用场景。

本文将介绍VB6中的绘图方法和常用函数,以帮助您更好地理解和应用该技术。

绘图方法绘制直线在VB6中,可以使用Line函数绘制直线。

它的语法如下:Line (x1, y1)-(x2, y2), [color], [B]•(x1, y1)和(x2, y2)是直线的起点和终点坐标;•color是可选参数,用于指定直线的颜色;•B是可选参数,用于指定是否绘制虚线。

以下是一个示例:Private Sub Form_Pnt()Line (100, 100)-(200, 200), RGB(255, 0, 0), BFEnd Sub绘制矩形在VB6中,可以使用Rectangle函数绘制矩形。

它的语法如下:Rectangle (x1, y1)-(x2, y2), [color], [B], [BF]•(x1, y1)和(x2, y2)是矩形的左上角和右下角坐标;•color是可选参数,用于指定矩形的边框颜色;•B是可选参数,用于指定是否绘制虚线;•BF是可选参数,用于指定是否填充矩形内部。

以下是一个示例:Private Sub Form_Pnt()Rectangle (100, 100)-(200, 200), RGB(0, 255, 0), B,BFEnd Sub绘制圆形在VB6中,可以使用Circle函数绘制圆形。

它的语法如下:Circle (x, y), radius, [color], [B], [BF]•(x, y)是圆心的坐标;•radius是圆的半径;•color是可选参数,用于指定圆的颜色;•B是可选参数,用于指定是否绘制虚线;•BF是可选参数,用于指定是否填充圆的内部。

以下是一个示例:Private Sub Form_Pnt()Circle (150, 150), 50, RGB(0, 0, 255), , BFEnd Sub在VB6中,可以使用Ellipse函数绘制椭圆。

VB图形和绘图操作

VB图形和绘图操作

VB图形和绘图操作VB图形和绘图操作⼀、坐标:X值:是沿X轴的位置,窗体中最左端是缺省位置0Y值:是沿Y轴的位置,窗体中最上端是缺省位置0X,Y的值可以⼩于0,也可以⼤于容器宽度或⾼度⼆、坐标值的刻度:缺省使⽤缇(Twip)为测量单位. 「Twip」中⽂译为"缇",是⼀种和屏幕⽆关的长度单位,⽬的是为了让应⽤程序元素输出到不同设备时都能保持⼀致的计算⽅式。

打印机的⼀个点,即我们说的“磅”,相当于20个 Twips,⼀英吋相当于 1440个Twips, ⼀公分(厘⽶)则相当于567 Twips ,也就是说,如果屏幕上某个对象的长度是1440 Twip的话,将会印出⼀英吋来。

由于我们在屏幕上操作时会习惯⽤「像素」(也就是我们常说的屏幕分辨率DPI,系统可以设置各种DPI值),所以我们直接输⼊数字时必须再将「像素」换算成「Twip」。

当DPI设置为96时(系统默认值),1个像素=(1/96)*1440=15 Twip;当DPI设置为120时,1个像素=(1/120)*1440=12 Twip。

当DPI为96时,如果希望窗体的⾼是「400」像素,宽是「300」像素,属性的设定值就是: Height=400×15=6000 Twip,Width =300×15=4500 Twip.在VisualBasic应⽤程序中,屏幕(Screen)是⼀个对象。

其Width和Height属性以Twip为单位反映出屏幕的宽度和⾼度。

⽽TwipsPerPixelX和TwipsPerPixelY这两个属性只与硬件有关,⽽与屏幕上可设定的分辨率⽆关。

将Width除以TwipsPerPixelX可以计算出屏幕的⽔平分辨率(像素数),同样将Height除以TwipsPerPixelY也可以计算出屏幕的垂直分辨率。

要想保持⼀个窗⼝或是控件的物理⼤⼩不变,只要计算出设计时的分辨率与实际运⾏时的分辨率的⽐值,然后根据这个⽐值来调节窗⼝和其中的控件的⼤⼩和相对位置,以及显⽰的字体尺⼨,就可以保持同⼀应⽤程序的窗⼝在不同的系统下的物理外观(当然在不同尺⼨的显⽰器上只能保持⽐例不变,物理⼤⼩还是不同的)。

VB6绘图

VB6绘图
2014-9-28 华南理工学化学与化工学院方利国开发
20
默认设置时的图
Form1.ForeColor = &HFF& ‘颜色设置为红色 Line (15000, 5000)-(10000, 10000), , BF Line (15000, 5000)-(10000, 10000), , BF
2014-9-28
2014-9-28 华南理工学化学与化工学院方利国开发
9
自定义坐标图示
(x1,y1)
Lx=x2-x1
X
Ly=y2-y1
Y
(x2-y2)
2014-9-28 华南理工学化学与化工学院方利国开发
10
自定义坐标 绘制图
Picture1.Scale (0, 0)-(10000, 10000) Picture1.Line (1000, 1000)-(1000, 5000), RGB(0, 0, 255) Picture1.Line (1000, 1000)-(9000, 1000), RGB(0, 255, 0) Picture1.Line (1000, 5000)-(9000, 1000), RGB(255, 0, 0)
2014-9-28
华南理工学化学与化工学院方利国开发
26
椭圆绘制
命令:Circle (10000, 5000), 3000, vbRed, 0, 0, 2 Circle (10000, 5000), 3000, vbBlue, 0, 0, 0.5
2014-9-28
华南理工学化学与化工学院方利国开发
华南理工学化学与化工学院方利国开发
12
自定义坐标系中单位坐标的距离
X轴单位坐标距离(Dx)= 控件名.width*0.017888889/Lx Y轴单位坐标距离(Dy)= 控件名.height*0.017888889/Ly 上题中,坐标原点在屏幕中心, Dx=17400*0.017888889/2000=0.1556mm Dy=12630*0.017888889/2000=0.111297mm

vb画图

vb画图

第一章绘图基础1.for i=1 to 5form1.circle(50,50),(i*150)next i2.line(-320,0)-(320,0) line(0,-240)-(0,240)3.object.scale(x1,y1)-(x2,y2):定义坐标系范围,object默认窗体object.scalemode=value:定义度量单位,0-自定,1-twip,2-point,3-像素,4-character. 5-英寸,6-毫米,7-厘米object.scaleleft=value:制定右边界,默认0object.scaletop=value;上边界object.scaleheight=value:纵最值object.scalewidth=value:横最值object.scalex(width,fromscale,toscale);变换坐标单位object.scaley(width,fromscale,toscale)4.自定义640*480,原点在中央的笛卡尔坐标系Scalemode=0单位自定Scalemode=3自定为像素Scale(-320,240)-(320,-240)或form1.scalewidth=640form1.scaleheighth=480form1.scaleleft=-320form1.scaletop=240纵横比:h_w_scale=scaleheighth/scalewidth 自定义纵横比scalewidth=640scaleheighth=int(h_w_scale* scalewidth)5.两个图形控件(1)Line控件属性:borderwidth(粗细,单位是像素);borderstyle(0-透明,1-实线,2-长虚线,3-虚线,4-点画线,5-双点画线,6-内插实线{当borderwidth>1时,有效});border color ;x1,y1,x2,y2(起始和终点坐标)(2)shape控件属性:borderwidth、borderstyle、fillcolor·(填充颜色)、fillstyle(0-实心填充,1-透明,2-水平线,3-垂直线,4-斜线,5-反斜线,6-网格,7-倾斜网格)、shape(0-矩形,1-正方形,2-椭圆,3-圆,4-圆角矩形,5-圆角正方形)6.常用绘图方法 object.方法参数 step:相对坐标Cls:清除所有图形或用print输出的文字;print:显示一个字符串Object.print[{spc(n)/tab(n)};][text1][{./;}text2]Tab():用于指定输出表达式的起始列的位置,参数n为绝对值,当指定列小于当前位置时,会自动跳转到下一行的第n列开始输出;text:当表达式微string时直接输出,当为数值型时,转化为字符串输出,当为布尔型时输出TRUE或FALSE;{,/;}:多个表达式的分隔符,若使用逗号,则在对应的输出结果中增加一段空格,若使用分号,则在输出结果中无分隔符。

第7章 VB图形操作

第7章 VB图形操作
第7章 图形操作
本章主要任务:
掌握建立图形坐标系统的方法;
掌握Visual Basic的图形控件和图形方法及其应用;
掌握使用绘图方法绘制简单的二维几何图形。
本章重点: VB中坐标系,绘图方法的使用 本章难点:容器控件的坐标,及用户自定义坐标系
☆☆ 第7章 图形操作 1
7.1 图形控件
VB中与图形有关的控件有:
☆☆ 第7章 图形操作
5
7.1 图形控件
7.1.3 形状控件Shape
使用Shape控件可在窗体、框架或图片框中创建矩形、 正方形、椭圆形、圆形、圆角矩形或圆角正方形等图形。 Shape控件预定义形状是由Shape属性的取值决定的。
Shape属性取不同值对应的形状
☆☆ 第7章 图形操作
6
7.1 图形控件
7.1 图形控件
7.1.1 图片框控件——PictureBox
主要作用:显示图片、也可作为其他控件的容器。 1、加载图形: 图形框对象.Picture = LoadPicture(“图形文件名”) 2、删除图形
图形框对象.Picture = LoadPicture( )
3.保存图片 使用SavePicture语句,其使用格式如下:
SavePicture [Object.]Picture|Image, FileName
注意:当 Autosize 属性设置为 True 时,图形框能自动调整大 小与显示的图片匹配 ☆☆ 第7章 图形操作 3
7.1 图形控件
7.1.2 图像框控件——Image控件
图像框比图形框占用更少的内存。图像框内不能保存其
7.3 绘图属性
7.3.1 CurrentX、CurrentY属性 CurrentX,CurrentY属性给出窗体或图形框或打印机在 绘图时的当前坐标。 这两个属性在设计阶段不能使用。 使用格式: object.CurrentX [= x] object.CurrentY [= y] 注意:当使用某些图形方法后,对象的 CurrentX 和 CurrentY的设置值将发生变化,其具体的改变见表7-5。

VB绘图教程

VB绘图教程

第6章绘图图形是计算机应用中令人感兴趣的内容。

VB对图形信息有很强的处理能力,包括使用控件自身的属性方法以各种形式显示图形;提供绘制一般的几何图形的内部控件;还有一批支持直接绘图、动态显示,以及设置颜色的对象属性、函数和方法等。

6.1Visual Basic 的坐标系统6.2对象的动态调整6.3图形控件6.4 用代码画图6.5颜色6.1 Visual Basic 的坐标系统坐标系统是绘图的基础.在VB中,屏幕坐标用于窗体的定位,每个窗体都有自己的坐标系统。

也就是说,VB的坐标是针对窗体或窗体上的控件而设计的,因此称为对象坐标系统。

VB的坐标系统分为默认规格(Default Scale);标准规格(Standard Scale)和自定义(Custom Scale)3类。

1.默认规格坐标系2.标准规格坐标系3.自定义规格坐标在默认规格坐标中,对象的左上角坐标为(0,0),当沿着水平向右移动和沿垂直轴向下移动时,坐标值增加。

对象和Top和Left 属性指定了该对象左上角的距原点在垂直方向和水平方向的偏移量。

(0,0)此点确定控件位置1.默认规格坐标系每个对象都有自己的尺寸,水平方向的宽度用属性Width来表示,垂直方向的高度用Height来表示。

单位:Twip(默认)、点(Point)、厘米和英寸1厘米约等于567Twip1 英寸约等于1440Twip72点等于1英寸。

注:vbUser 和vbPixels 不能用于打印机。

除了用Twip 作为坐标系的量度单位外,用户还可以使用标准规格选择其他的量度单位。

标准规格通过对象的“ScaleMode ”属性定义。

在程序设计阶段,从属性窗口找到ScaleMode 属性并且单击向下箭头,如图下拉列表中,从中选择所需要的量度规格。

值文字常数描述0vbUser 自定义1vbTwips 默认值,以Twip 为单位2vbPoint 以点(Point)为单位3vbPixels 像素4vbCharacters 字符5vbInches 以英寸为单位6vbMillimeters 以毫米为单位7vbCentimeters 以厘米为单位2.标准规格坐标系ScaleMode属性可在设计阶段设置,也可通过程序代码设置,例如:Form1.ScaleMode=2Picture1.ScaleMode=7一般情况下,VB的绘图方法使用以Twip为单位的坐标系统,该系统可由程序员人为地缩放。

基于VBGDI入门之使用Graphics对象绘制线图

基于VBGDI入门之使用Graphics对象绘制线图

GDI+入门之使用Graphics对象绘制线图在实际应用中,很多图形是由点和线构成的,的Graphics 类提供了很多画线图的方法,我们可以使用这些重载了的方法组合出丰富的图案来。

下面我们就来了解下这些绘线图的方法。

一、DrawLine方法该方法绘制一条连接由坐标对指定的两个点的线条,所以我们需要指定这两个点的坐标,如下所示:DrawLine(pen,x1,y1,x2,y2)或者DrawLine(pen,Point1, Point2)下面示例将在PictureBox控件表面绘制一条直线:Dim g As Graphics = Me.PictureBox1.CreateGraphicsDim mpen As New Pen(Color.Red)g.DrawLine(mpen, 0, 80, 0, 160)也可以使用如下代码来实现一样的效果:Dim g As Graphics = Me.PictureBox1.CreateGraphicsDim mpen As New Pen(Color.Red)Dim p1 As Point = New Point(0, 80)Dim p2 As Point = New Point(0, 160)g.DrawLine(mpen, p1, p2)当然,我们也可以使用DrawLine方法画出更加复杂的图形,如下代码所示:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim g As Graphics = Me.PictureBox1.CreateGraphicsDim mpen As New Pen(Color.Red)Dim i As IntegerFor i = 0 To 160 Step 10g.DrawLine(mpen, 0, 80, i, 0)g.DrawLine(mpen, 0, 80, i, 160)g.DrawLine(mpen, 160, 80, 160 - i, 160)g.DrawLine(mpen, 160, 80, 160 - i, 0)NextEnd Sub运行后效果如下图一所示:图一:使用DrawLine方法画复杂图形二、DrawLines方法该方法绘制一系列连接一组Point 结构的线段,它按顺序把每个点都连接起来,构成一段曲线,DrawLines的形式如下:DrawLines(Pen, Point())Point()参数就是一个由一系列的点构成的数组。

用VB编写画图程序

用VB编写画图程序

4.代码设计(1)引入命名空间:Imports System.Drawing.Drawing2D(2)在FrmPaint类里定义全局变量和mSelect枚举结构:1.Private g As Graphics '绘图句柄2.Private pstart As Point, pend As Point '定义画图的起始点,终点3.Private mChoice As Integer'选择图形枚举4.Private mWidth As Integer'画笔宽度5.Private mIcon As Icon '用户选择图标6.Private Enum mSelect '选择图形类别枚举7. Pencil '铅笔8. Line '直线9. Ellipse '椭圆10. FillEllipse '填充椭圆11. StyleEllipse '风格椭圆12. Rec '矩形13. FillRec '填充矩形14. StyleRec '风格矩形15. Icon '图标16. Eraser '橡皮17.End Enum(3)在FrmPaint的Load事件中初始化全局变量和Graphics对象:1.Private Sub FrmPaint_Load(ByVal sender As System.Object, _2.ByVal e As System.EventArgs) Handles MyBase.Load3.4. g = Me.picPaint.CreateGraphics '获取PictureBox的绘图句柄5. mChoice = mSelect.Pencil '默认选择选铅笔作为绘图工具6. mWidth = 1 '初始化画笔宽度7.End Sub(4)定义转换坐标起点和终点的过程Convert_Point()。

VB中PaintPicture图形方法的使用

VB中PaintPicture图形方法的使用

VB中PaintPicture图形方法的使用(1)出处:eNet学院责任编辑:zwg[01-12-13 18:17] 作者:enet 在VB中提供了完善的做图方法, 可以在窗体或图形框中绘制各种图形, 其中提供了一个方便的图像处理命令即:PaintPicture, 此命令的功能与WINDOWS API 函数BitBlt类似,但由于不用做API函数说明,并且有它独特的功能,所以更有它的方便之处, 使用它可以完成很多图像的特殊处理工作。

一、语法格式:PaintPicturePic,destX,destY,destWidth,destHeight,scrX,scrY,scrWidth,scrHeight 其中Pic:为图片对象, 如图形框Picture等;destX,destY:目标图像位置;destWidth,destHeight:目标图像尺寸;scrX,scrY:原图像的裁剪坐标;scrWidth,scrHeight:原图像的裁剪尺寸;从以上格式可以看出,此命令的功能就是把一个源图像资源任意复制到指定的区域,并且通过改变参数destWidth与destHeight值,还可以改变复制后的图像的尺寸,实现放大或缩小图像显示, 甚至可以置这两个属性为负值, 这样可使目标图像在水平方向翻转,实现特殊效果的图像显示。

二、应用举例1.墙纸的制作所谓的墙纸, 就是用一个小尺寸的图像连续在一个区域显示, 形成规则的重复图像, 也称为图像的平铺显示,利用“PaintPicture"命令可以方便的完成此工作, 即用一个固定的图像资源多次连续复制到窗口中; 复制过程中必须准确计算下一图像的起始位置; 显示过程中可采取两种方法, 第一种方法可置源图像资源即图形框的AutoSize属性为真, 并且显示过程中按源图像的实际尺寸复制, 这是正常的图像平铺显示; 还有一种方法就是通过置AutoSize 属性为假, 然后改变图形框的尺寸, 或者直接修改目标图像的尺寸, 这样可实现放大或缩小图像的平铺显示。

VB绘制曲线图

VB绘制曲线图

VB绘制曲线图定一个公式:y=1/sqr((1-x^2)^2+(2Kx)^2),给定一个X的范围,然后得出一条曲线,K为常数,需输入,定义为x为0到无穷大,但曲线显示的范围在X从1到4即可'带刻度了Private Sub Form_Click()Me.AutoRedraw = TrueForm1.Scale (-1, 5)-(5, -1)k = Val(Text1.Text)Me.Line (0, 0)-(0, 4)Me.Line (0, 0)-(4.5, 0)For I = 0 To 4Line (I, 0.1)-(I, 0)Print INextFor I = 1 To 4Line (0, I)-(0.2, I)Me.CurrentX = Me.CurrentX - 0.6Print INextMe.CurrentX = 0Me.CurrentY = 1For I = 0 To 4 Step 0.01Me.Line -(I, 1 / Sqr((1 - I ^ 2) ^ 2 + (2 * k * I) ^ 2))NextEnd Sub用VB实现实时曲线的绘制和保存2005-02-04 15:27作者:HASH出处:天极社区责任编辑:方舟在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows API函数来完成,但是如果你对实时曲线的要求不是很高,只要能表示出当前的一般情况的话,我们可以直接应用VB提供给我们的空间来完成。

原则上讲,直接在Form里绘制曲线都是可以的,MSDN上面很多例程就是直接在Form里面绘制图形的,Form作为绘制图形的容器,不过一般应用中Form中不可避免的会有很多其他控件,所以我们选择PictureBox作为绘制曲线的容器。

实时曲线的绘制一般借助于Timer控件来完成,使用Timer控件,定期将串口或是其他仪器中监测到的数据送往PictureBox1,而曲线的绘制一般画成折线图,采用PictureBox1的Line方法绘制.具体实现如下:1.选择需要显示的窗体Picture1,加入图片框Picture1,根据实际需要设置图片的大小并移到合适的位置,并在图片的外面画好量程----时间坐标系;然后加上Timer控件以及两个CommandButton,界面就基本设置好了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

来个房子的吧:Private Sub Command1_Click()Dim i As Integer, n As IntegerClsn = 5For i = 1 To 3Print String(4 - i, " ") & String(2 * i - 1, "*") & String(10, "*")NextFor i = 1 To 4Print " * *" & String(9, " ") & "*"NextPrint " " & String(15, "*")End SubVB 填充封闭区间Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Sub Command1_Click()Dim hBrush As LongDim OldhBrush As LonghBrush = CreateSolidBrush(RGB(0, 0, 255))'要填充的颜色OldhBrush = SelectObject(Me.hdc, hBrush)Me.Line (10, 10)-(100, 100), RGB(255, 0, 0), BFloodFill Me.hdc, 20, 20, RGB(255, 0, 0)'区间边界颜色SelectObject Me.hdc, OldhBrushDeleteObject hBrushEnd Sub用VB做的俄罗斯方块的论文怎么写浏览次数:3200次悬赏分:30 |解决时间:2007-3-6 18:51 |提问者:高程我在论文的时候用VB编写了一个俄罗斯方块游戏,但不知道论文该怎么写,有人知道的告诉下,或者在网站上看到相关的资料给我说下,先谢谢大家了!~!~!~,必有重谢最佳答案前言visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows 系统编程。

随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了使用户在繁忙的日程工作中得到放松,于是出现了各种各样的休闲软件,如聊天工具,游戏等等。

于是我们小组着手设计开始一个这样的游戏软件。

通过这学期来Visual Basic的学习,我初步掌握了Visual Basic语言的最基本的知识,于是在牛荣和李鹏等老师的指导下动手用Visual Basic编写俄罗斯方块游戏。

我们之所以选择开发俄罗斯方块游戏,无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。

在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。

谁能说清楚,迄今为止人们究竟花了多少万个小时在这个游戏上?也许这些时间本来可以被花在更具生产力的活动上。

某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。

至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。

为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。

工程概况2.1 项目名称俄罗斯方块游戏2.2 设计平台VB 全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。

Vb是microsoft公司于1991年退出的windows应用程序开发工具visual意思是“可视化的”。

在它刚推出来时,自身还存在一些缺陷,功能也相对少一些。

但是经过多年的开发研究。

最近microsoft公司又推出了VB6.0版本VB6.0运行环境:硬件,要求486以上的处理器、16MB以上内存,50MB 以上的硬盘,cd-rom驱动器,鼠标。

软件:要求windows 95以上版本。

2.3程序设计思想游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我们在游戏中添加了漂亮的场景和动听的音乐,设置了过关升级的功能,激发大家的娱乐激情。

从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个欲览窗体中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。

俄罗斯方块游戏设计的主要步骤为以下10个方面:(1)游戏界面的设计。

(2)俄罗斯方块的造型。

(3)俄罗斯方块的旋转。

(4)俄罗斯方块的运动情况(包括向左,向右和向下)。

(5)俄罗斯方块的自动消行功能。

(6)游戏级别的自由选择。

(7)游戏速度的自由选择。

(8)游戏得分的计算。

(9)游戏菜单选项的设计及功能实现。

(10)游戏的背景音乐及特效。

2.4运用的控件和主要对象我们在设计过程中主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。

2.5主要实现的功能我们开发的俄罗斯方块游戏,主要实现了以下几种功能:1.可以灵活控制方块在图形框中运动。

2.游戏过程中方块可以自由旋转。

3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。

4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。

5.游戏的得分支持积分,并且按照公式:得分= 原来分数+ 100 * (2 ^ 同时消除的行数-1)这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动升级,这个升级指速度升级。

6.游戏中提供了一个漂亮的场景和动听的音乐,给你带来无限激情。

2.6开发人员由于这次课程设计所选的题目太复杂,而时间又比较紧张,指导老师建议和同学分工完成。

我们小组成员包括组长孙磊周,副组长邹海星,此游戏由我们两个人共同开发而成。

正文3.1游戏设计的具体实现在我们两个人共同努力下,此次设计,终于能够圆满完成。

由于时间的紧促,在设计中,也许会有一些考虑不周之处,但其功能已经能够满足大多用户的需求,相信假以时日,一定能做出一个更经典,更完美的俄罗斯方块游戏,下面我们将对每一步的具体如何实现展示给大家。

3.1.1游戏界面的设计和背景音乐及特效的实现俄罗斯方块游戏主要由两个界面构成,登陆界面和开始游戏界面,在登陆界面中我们可以首先看到圣诞节的晚上飘梅花的场景,梅花从窗体顶部做函数曲线的下落运动,在窗体中定义一个Image控件组,在通用中定义梅花X坐标变量动态数组,Y坐标变量动态数组,步距X的变量动态数组,步距Y的变量动态数组,以及振幅变量动态数组。

然后在窗体form_load中可以定义梅花的数量,利用随机函数产生随机的梅花坐标,步距和振幅,Image控件在运行时候就调用梅花图片,Image控件就可以由时钟控件控制下落速度,可以自由调节,梅花按snow(i).Left = xp(i) + am(i) * Sin(dx(i))函数在做纵向的正玄函数轨迹运动,竖直方向上为自由下落运动,,有am(i)来控制梅花的左右移动振幅。

因此,我们就可以看到一个梅花在空中自由飘舞的画面了。

背景画面是用photoshop软件处理的漂亮图案,原本画面中的动画效果都是由Image控件制作的,还有点击进入游戏的按钮是由Label控件实现的,因为Image 控件没有置前置后功能,不能将下雪的场景体现完整性,所以将这些图案全部放在背景上,不影响雪花飘落的效果,当点击画面的时候一样可以进入游戏界面。

游戏的背景音乐是由一段代码调用系统播放器Windows Player播放背景音乐,由于本次设计主要是针对游戏如何设计的,所以在这里就不对播放背景音乐的功能做介绍了。

3.1.2俄罗斯方块的造型相信朋友们都玩过俄罗斯方块,对这个游戏的玩法和方块形状都比较熟悉。

我们这个游戏只选择了最基本的7中造型,包括长条型,正方型,正S型,反S型,正7型,反7型,T型。

如果需要我们可以添加更多的造型。

将游戏界面的游戏区图片框分割成10*20的小块,每个小块放置一个command控件,预览区图片框按同样比例分割成4*4的小块,同样有command控件构成,我们可以把预览区图片框看作是从游戏区图片框中选取的一个部分,游戏区的小方块编号和欲览区编号如下图:0 1 2 3 4 5 6 7 8 9… … … … … … … … … …… … … … … … … … … …90 91 92 93 94 95 96 97 98 993 4 5 613 14 15 1623 24 25 2633 34 35 36游戏区编号欲览区编号利用Select将方块的7中造型列出,比如长条型的设计,在欲览区中分别有3.4.5.6和5.15.25.35四个方块构成两中形态,用数组为:m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1将它的形状编号为0和1,在后面方便调用,其他的方块造型同样的方法。

相关文档
最新文档