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)等等 展开
比如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)等等 展开
展开全部
三维模型的显示
目前对三维图形程序的开发大多是基于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 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
定义这样的数组,而且 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
如果不是这样,继续问! ^_^
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 ++ 字节了,可能是这个原因吧!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的,任何变量都使用dim定义
不管是2维3维或者更多维,定义的方法都是一样的。
但是你那里写错了,应该这样
dim T(100,200,200)
这样的数组,从T(0,0,0)至T(100,200,200)都可以使用的,总长度你可以算下101*201*201=4080501
不管是2维3维或者更多维,定义的方法都是一样的。
但是你那里写错了,应该这样
dim T(100,200,200)
这样的数组,从T(0,0,0)至T(100,200,200)都可以使用的,总长度你可以算下101*201*201=4080501
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询