VB怎么用数组记录x,y坐标

比如我建立一个4*4的网格,每个正方形网格的四个节点算一个单元,每个节点有1~25按顺序排列的节点号,我想用数组记录每个节点的x,y坐标(节点坐标不是整数),然后按单元号或节点号都能调用这些节点。应该怎么搞。想不出来啊。(也就是说不一定要节点号1~25,只要求能区分每个节点,能够记录所在的单元和位置还有坐标就行)用在有限元计算里的。

更直接的方法:不用自定义类型,通过节点号来读写坐标
dim bs(1 to 25) as Single ,i as long

for i=1 to 25
bs(i)=第 i 个节点的x坐标 * &H7FFF + 第 i 个节点的y坐标 '记录坐标,第 i 个节点的x和y坐标你自己改
next i
'下面公式是读取坐标的
第 i 个节点的x坐标=bs(i) and &H7FFF0000
第 i 个节点的y坐标=bs(i) and &HFFFF
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-10
可以用二维数组解决,如你所说,4*4 为一个单元,假设共有 n 个这样的单元
option base 1 ‘设置数组索引从 1 开始

Type cellPos
x as single
y as singe
End Type

Dim cell(n,4) As cellPos '定义数组
那么要访问第 m 个单元第3个节点,可以用:
ax = cell(m,3).x
ay = cell(m,3).y
其他好理解,就是单元内需要有个默认的排序方式,具体要看你的需求
以上是根据每个单元是独立的来计算的,看你的描述好像不是这样的。如果是类似九宫格的网格,节点是有共享的,不适用上面的方法。
第2个回答  2015-05-18
Private Type jiedian
  x As Single
  y As Single
End Type

Dim jd() As jiedian

Private Sub Command1_Click()
ReDim jd(10)
For i = 0 To 10
jd(i).x = 。。。。。。。
jd(i).y = 。。。。。。。
Next
End Sub

第3个回答  2015-04-21
可以用结构体啊:

Private Type jiedian
x As Single
y As Single
End Type

Dim jd() As jiedian

Private Sub Command1_Click()
ReDim jd(10)
For i = 0 To 10
jd(i).x = 。。。。。。。
jd(i).y = 。。。。。。。
Next
End Sub追问

但是你这样没有记录下节点所属单元啊。。。

但是你这样没有记录下节点所属单元啊。。。

追答

把结构体改造一下呗,我是看不太懂你说的什么单元 节点什么的,你按自己想法做一个结构体

相似回答