VB 怎么定义一个三维空间的点的坐标

刚会点VB,想表示一个空间点的坐标比如T(i,j,k)其中i,j,k,是变化的i=0to100j=0to200k=0to200怎么样能定义T(i,j,k)是不是用DIM定... 刚会点VB,想表示一个空间点的坐标
比如T(i,j,k)其中i,j,k,是变化的
i=0 to 100
j=0 to 200
k=0 to 200
怎么样能定义T(i,j,k)
是不是用DIM 定义,同时结果能在Txt文件输出T(0,0,0).........T(100,200,200)等等
展开
 我来答
kzj94qmkk
2011-06-07 · TA获得超过351个赞
知道小有建树答主
回答量:597
采纳率:0%
帮助的人:0
展开全部

三维模型的显示

目前对三维图形程序的开发大多是基于OpenGL来实现的,OpenGL实际上是一个独立于窗口系统和操作系统的开放式三维图形标准,得到了众多计算机厂商的支持。作为一个优秀的三维图形接口,OpenGL提供了丰富的绘图命令,利用这些命令能够开发出高性能、交互式的三维图形应用程序。它与VC有着紧密的开发接口,但由于VC对于一般非计算机专业的工程技术人员来说难以掌握,因而给工程领域的仿真程序设计带来了很大的不便。但目前支持VB等开发工具的OpenGL开发库也开始出现。本文就是基于VBOpenGL(vbogl.tlb)库来实现的,这是一个可免费使用的第三方库,它封装了大量的底层OpenGL库函数,很大程度上简化了开发工作。

在VB中建立三维图形环境之前,首先要在“工程”菜单下通过“引用”子菜单下加入VBOpenGL库,然后在窗体上加入一个PictureBox控件作为三维模型的显示和操作区域。

[[[[作为工程应用的虚拟设计或仿真程序,其三维模型可通过一般的三维造型软件如Solidworks来设计,然后通过软件提供的图形接口输出为中性文件。目前主流的三维造型软件都支持多种标准文件格式,其中STL 文件是一种可读性较强的文件格式,适合在工程仿真程序中使用。STL 文件格式最早是作为快速成型领域中的接口标准,已被广泛应用于各种三维软件中,很多主流的商用三维软件都支持STL 文件的输入输出。STL模型是以三角形集合来表示物体外轮廓形状的几何模型,其中每个三角形面片有四个数据项表示,即三角形的三个顶点坐标和三角形面片的外法线矢量,STL 文件即为多个三角形面片的集合。

因此在VB环境中可通过读入STL 文件并在绘图空间中重现的方法来显示三维模型。首先对读入的STL 文件按行分解,从中解析出每个面元,并存储到结构体数组中,接下来的工作就是通过VBOpenGL中的glColor3d函数对每个面元进行渲染和着色,并把渲染的结果以图形的形式填充到PictureBox控件的绘图区中,最终实现整个模型的显示。需要说明的是在显示三维模型之前,必须对VBOpenGL中的初始环境进行定义。]]]]]]

+++++++++++我现在看了后 有很多的不明白 一个是 保存后的 STL文件怎么导入 还有在正确导入OPENGL后 怎么做 才能让做好 模型进行运动????

我目的是做个 机械手的 运动仿真 [我打算做个独立程序]

我个人的思路是 在 SOLIDWORKS 中建立好模型 并装配好
然后把他保存成 STL 文件 导入 VB中进行编辑
最后 做 菜单等

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
棘棘芽
2011-06-06 · TA获得超过563个赞
知道小有建树答主
回答量:608
采纳率:100%
帮助的人:561万
展开全部
定义这样的数组,而且 ijk都是变动的,也可以做到,可以这样!
eg:
dim T() [ as valueType]
i=100:j=200:k=200
redim T(i,j,k)
具体的在text文本里输出,还不知道你输出的是T(0,0,0)的值啊,还是文本 T(0,0,0)
这里理解为文本:
dim vi%,vj%,vk%,s$
for vi=0 to i
for vj=0 to j
for vk=0 to k
s=s & "T(" & vi & "," & vj & "," & vk & ")"
next
next
next
Open FilePathAndFileName For Output As #1'FilePathAndFileName 这个是你文本文件的路径和文件名:eg : c:\1.txt
Print #1, s
Close #1
如果不是这样,继续问! ^_^
更多追问追答
追问
但是为什么那么久没反应,我把i,j,k一次改为10,11,12就有反应了。但满屏都是T(0,0,1).....T(10,11,12),怎么改成一行只显示三个啊?就像下面的
T(0,0,0),T(0,0,1),T(T0,0,2)等等
谢谢你了!
追答
dim vi%,vj%,vk%,s$,vc&
for vi=0 to i
for vj=0 to j
for vk=0 to k
vc=vc+1
s=s & "T(" & vi & "," & vj & "," & vk & ")" & iif(vc mod 3 =0,vbcrlf,"")
next
next
next
没有反应,你再试下吧!不要设置的太大!
100,200,200 这样就有400万数据了,当生成你的那些字符串时也有 400*8*2 ++ 字节了,可能是这个原因吧!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arthur24
2011-06-06 · TA获得超过242个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:410万
展开全部
是的,任何变量都使用dim定义
不管是2维3维或者更多维,定义的方法都是一样的。
但是你那里写错了,应该这样
dim T(100,200,200)

这样的数组,从T(0,0,0)至T(100,200,200)都可以使用的,总长度你可以算下101*201*201=4080501
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式