vb关于自定义坐标的问题,求大神们来解答一下。 vb 中如何通过设置坐标来控制对象的位置 急求

作者&投稿:戚肢 (若有异议请与网页底部的电邮联系)
所谓自定义坐标,就是由自己来设定坐标的原点、坐标轴的方向、坐标轴的单位等。

VB的默认坐标系统是以窗体的左上角为坐标原点、x轴向右、y轴向下、单位为缇。

如果要使用数学中常用的四象限的坐标系统则是以窗体中心为原点,x轴向右、y轴向上,单位最好为像素。

Form1.Scale (0, 500) - (500, 0) 的意思就是窗体Form1的左上角坐标为(0, 500),右下角坐标为(500, 0),也就是说右上角的坐标为(500, 500),左下角的坐标为(0, 0),从中可看出,这个自定义坐标系统的原点在窗体的左下角,x轴向右,y轴向上,x轴的单位是ScaleWidth/500,y轴的单位是ScaleHeight/500(也就是说x轴的1与y轴的1是不相等的,除非窗体的内部区域是正方形)。然后后面的绘图命令就会根据这个新的坐标系统来工作了,比如你在(0, 0)的位置用PSet画个点,它会画在左下角,而不是左上角!!!

你所说的窗体的坐标系统是这个窗体相对于操作系统而言的(即对外的),而窗体的内部坐标系统则是相对于其内部的控件以及各种绘图命令而言的(即对内的)。就好比你的房子位于北纬xxx度,东经xxx度,而你房间里的沙发距离墙壁xx厘米,这是两套完全不相关的坐标系统好不好?!

vb关于自定义坐标的问题,求大神们来解答一下。~

所谓自定义坐标,就是由自己来设定坐标的原点、坐标轴的方向、坐标轴的单位等。
VB的默认坐标系统是以窗体的左上角为坐标原点、x轴向右、y轴向下、单位为缇。
如果要使用数学中常用的四象限的坐标系统则是以窗体中心为原点,x轴向右、y轴向上,单位最好为像素。
Form1.Scale
(0,
500)
-
(500,
0)
的意思就是窗体Form1的左上角坐标为(0,
500),右下角坐标为(500,
0),也就是说右上角的坐标为(500,
500),左下角的坐标为(0,
0),从中可看出,这个自定义坐标系统的原点在窗体的左下角,x轴向右,y轴向上,x轴的单位是ScaleWidth/500,y轴的单位是ScaleHeight/500(也就是说x轴的1与y轴的1是不相等的,除非窗体的内部区域是正方形)。然后后面的绘图命令就会根据这个新的坐标系统来工作了,比如你在(0,
0)的位置用PSet画个点,它会画在左下角,而不是左上角!!!
你所说的窗体的坐标系统是这个窗体相对于操作系统而言的(即对外的),而窗体的内部坐标系统则是相对于其内部的控件以及各种绘图命令而言的(即对内的)。就好比你的房子位于北纬xxx度,东经xxx度,而你房间里的沙发距离墙壁xx厘米,这是两套完全不相关的坐标系统好不好?!

VB的坐标系统综述

由于在visual basic系统中有多种坐标定义,容易使初学者混淆,本文将详细总结vb的坐标系统的一些基本概念,并提供坐标定义的详细方法:

visual basic 坐标系统概述:

visual basic 的坐标系统是指在屏幕(screen)、窗体(form)、容器(container)上定义的表示图形对象位置的平面二维格线,一般采用数对(x,y)的形式定位。其中,x 值是沿 x 轴点的位置,最左端是缺省位置 0。y 值是沿 y 轴点的位置,最上端是缺省位置 0。

在visual basic坐标系中,沿坐标轴定义位置的测量单位,统称为刻度,坐标系统的每个轴都有自己的刻度。坐标轴的方向、起点和刻度都是可变的,在后面的叙述中,将讨论如何改变这些定义。

如何创建坐标系统:

创建图形对象的坐标系统,一般有以下几种方法:

1、使用系统缺省定义:

在系统缺省状态下,visual basic使用twips坐标系,以’缇’为单位(1缇的长度等于1/1440英寸;1/567厘米;1/20磅)。应当注意的是:这些值指示的是图形对象打印尺寸的大小。而在计算机屏幕上的物理距离则根据监视器的大小及分辨率的变化而变化。

2、选择系统标准刻度定义:

除了缺省的twips坐标系外,用户还可以通过对象的scalemode属性来设置其它的坐标刻度:(共有8种设置),现将这些设置列表如下:

scalemode值 表示 说明

0 user 用户自定义

1 twip 缇,系统缺省设置

2 point 磅,每英寸约为72磅

3 pixel 像素,像素是监视器或打印机分率的最小单位。每英寸里像素的数目由系统设备的分辨率决定。

4 character 字符,打印时,一个字符高 1/6 英寸,宽1/12 英寸

5 inch 英寸,每英寸为2.54厘米

6 millimeter 毫米

7 centimeter 厘米 

在上述设置值中,除了 0 和 3以外,其它所有模式都是打印机所打印的单位长度。例如,某对象长为4个单位,当 scalemode 设为 5 时,打印时就是4英寸长。在程序中设定scalemode值的代码如下:

'设窗体的刻度单位为厘米。

scalemode = 7

'设 picture1 的刻度单位为像素。

picture1.scalemode = 3

3、创建自定义坐标系统:

当scalemode=0时,即为用户自定义模式,可采用设置对象的相应属性,来创建所需的坐标系统,这些属性是:

scaleleft: 设置对象左边距值

scaletop: 设置对象上边距值

scalewidth: 设置对象宽度

scaleheight: 设置对象高度

下面给出如下设置代码:

scaleleft=100

scaletop=100

scalewidth=300

scaleheight=200

picture1.scaleleft=50

picture1.scaletop=50

则所定义的坐标系如下图所示:

scaletop=100

picture1.scaleleft=50

以上代码定义窗体左上角坐标为(100,100),定义窗体内图形对象picture1距窗体左边距离为50,上边距离为50。scalewidth 和 scaleheight 语句定义窗体内部宽度的 1/300 为水平坐标单位;当前窗体内部高度的 1/200 为垂直坐标单位。如果窗体的大小以后被调整,这些单位保持原状。也就是说:scalewidth 和 scaleheight 是按照对象的内部尺寸来定义单位的,并且这些尺寸不包括边框厚度或菜单标题的高度。scalewidth 和 scaleheight 是指对象内的可用空间的大小。它们决定了对象本身的坐标系统。这有别于内部尺寸和外部尺寸(由 width 和 height属性指定)定义,width 和 height 总是按照容器的坐标系统来表示。另外以上刻度属性都可包括分数,也可是负数。如果将 scalewidth 和 scaleheight 属性设置值为负数即改变坐标系统的方向。

4.使用scale方法定义坐标系统:

一个更简洁的改变坐标系统的途径是使用 scale 方法。定义形式如下:

[object.]scale (x1, y1) – (x2, y2)

x1 和 y1 的值,决定了 scaleleft 和 scaletop 属性的设置值。x2-x1的差值和y2-y1的差值,分别决定了 scalewidth 和 scaleheight 属性的设置值。若指定 x1 > x2 或 y1 > y2 的值,与设置 scalewidth 或 scaleheight 为负值的效果相同。例如:设定窗体坐标系统如下:

scale (100, 100)-(200, 200)

该语句定义等同于以下属性设置:

scaletop=100:scaleleft=100:scalewidth=100:scaleheight=100

如何恢复缺省坐标系统:

在定义了其它坐标系后,如果需要将坐标系统恢复为缺省的twips坐标系,可以使用不含参数的scale方法,如语句:

picture1.scale

将图形对象的坐标系统恢复为缺省,其左上角坐标为(0,0)。

满意请采纳,谢谢。

求大神js代码 知道A点的坐标,绕着O(原点)旋转任意角度求出旋转后的B...
答:这是数学题啊...Rotate = function(Source,Angle)//Angle为正时逆时针转动, 单位为弧度{var A,R;A = Math.atan2(Source.Y,Source.X)//atan2自带坐标系识别, 注意X,Y的顺序A += Angle//旋转R = Math.sqrt(Source.X * Source.X + Source.Y * Source.Y)//半径return {X : Math.cos(...

求大神解答为什么选B是纵坐标,
答:曲线积分,已知起点为A,终点为B,所以积分限下限对应A点,上限对应B点。但此处积分前多了一个负号,说明表达式中将上下限作了对换。因此积分限下限对应B点,上限对应A点

求出A,B点关于原点对称点,A‘,B’的坐标,并求出∠A+∠A’+∠B+∠B...
答:解析,A关于原点对称的点A‘=(-4,0),B关于原点对称的点B’=(-4,-3)。∠A=90º,∠A'=90º,∠B=∠B',又tan∠B=4/3,∠B=54º【特殊的度数】故,∠A+∠A'+∠B+∠B'=180º+108º=288º。

求教数学高手,关于空间坐标系旋转的问题。财富值不是问题
答:{e3i}=A'(gama)*A'(belta)*A'(alpha)*{ei} 令B=A'(gama)*A'(belta)*A'(alpha),则B是一个正交矩阵。它有一个实的特征根(不是重根的那个根),相应的特征向量为u,则r相对于参考坐标系旋转的角度就是绕特征向量u旋转的角度sita,有关系式 cos(sita)=(I-1)/2,其中I是正交矩阵B...

LINGO程序语法老错,下面是我的程序,求大神指导语法,不胜感谢!题目就是...
答:约束条件错了吧???简写的代码如下:sets:v_xy/1..4/: x, y;v_ab/1..19/: a, b;endsets max = t;for(v_xy(I):for(v_ab(J):(x(I) - a(I))*(x(I) - a(I)) + (y(I) - b(I))*(y(I) - b(I)) >= t;));for(v_xy(I): @for(v_xy(J) | J #...

关于平面直角坐标系的问题!要快,回答要有过程,加分
答:因为两直线都过 A(-2,0)点,将A(-2,0)点分别代入两直线方程可求出他们非别为Y=2X+4,Y=-X-2。因为分别交于y轴于B、C点,将X=0代入分别代入方程中则可求出B(0,4) C(0,-2)则△ABC底为BC 高为A到原点的距离,可求出BC=6 A到原点距离为|-2|=2,所以△ABC面积为1/2*...

求点(a,b,c)关于(1)各坐标面(2)各坐标轴(3)坐标原点的对称点的坐标
答:关于z轴对称,是-a,-b,c。关于原点对称,是-a,-b,-c。坐标轴(coordinate axis)用来定义一个坐标系的一组直线或一组线;位于坐标轴上的点的位置由一个坐标值所唯一确定,而其他的坐标轴上的点的位置由一个坐标值所唯一确定,而其他的坐标在此轴上的值是零。在坐标轴中X轴Y轴:界定图表...

大神们,VB求直线与线路斜交交点坐标及里程,代码提示无效的过程调用或参...
答:错误提示在哪一行?最好放截图上来 这种错误会指出是哪个过程(函数),一般是参数的数值有问题

已知球面上多组坐标的数据,如何用MATLAB拟合求出球的球心坐标及半径...
答:可以按下列步骤进行:1、确定十组以上的(x,y,z)球面坐标 2、自定义函数,f(x,y,z)=(x-a)²+(y-b)²+(z-c)²-R²,球心(a,b,c),球半径R 3、利用Matlab的拟合函数nlinfit(),求出系数,即a,b,c,R ...