![]() |
#2
风吹过b2021-09-11 11:25
要求有点看不懂,主要是图片中图片有点没看懂。
先说一个这个程序的怎么的架构。 首先,这个程序是一个按中等规模的工程,先要做好规划。 模块文件中, 一是定义好一个结构,这个结构就是 坐标类型,包括二个数据 X 和 Y 二是规划好函数来。 根据这几组方程,分别写出几个函数。 函数要求: 函数返回值要求一致,使用结构返回,也就是同时返回X Y坐标。看例子 最后来一个总调用函数。 参数个数=这6个函数+1个,首参数用于选择调用这6个函数中哪一个,其他参数传递进去。该类型函数用不到的参数就传0进来。 最后把结果传递出来。 总调用函数第一个参数可以使用枚举类型。 ----------示例代码--------------- '角度是 一周360度,在计算过程中里转换为弧度 Option Explicit Const pi = 3.14159 Public Type 坐标 x As Single y As Single End Type Public Enum 曲线类型 圆周 = 0 等速上升 = 1 等速下降 = 2 等加速上升 = 3 等加速下降 = 4 等减速上升 = 5 等减速下降 = 6 End Enum Public Function 运动(运动类型 As 曲线类型, ro As 坐标, s As Single, h As Single, 角度 As Single) As 坐标 Select Case 运动类型 Case 圆周 运动 = 圆周运动(r0, s, 角度) Case 等速上升 运动 = 等速上升(ro, s, h, 角度) ' .... End Select End Function Public Function 圆周运动(r0 As 坐标, s As Single, 角度 As Single) As 坐标 圆周运动.x = (r0.x + s) * Sin(角度 / 180 * pi) 圆周运动.y = (r0.y + s) * Cos(角度 / 180 * pi) End Function Public Function 等速上升(r0 As 坐标, s As Single, h As Single, 角度 As Single) As 坐标 '图片公式看不清,看不懂 End Function ------------------------- 总装过程: 定义好一个规定文件,这个文件写每个转换点的曲线类型。 如 0,0 30,3 60,6 ... 把这个文件读到一个数组里。如这里使用一个二维数组 q ,1号元素为角度,2号元素为曲线类型 使用角度循环,按分隔写步长 for 角度=0 to 360 step 360/点数 '查找属于哪一段 for i=1 to 6 '假设共有6段曲线 if 角度>q(i,1) and 角度<q(i+1,1) then 曲线=q(i,2) exit for end if next i 点(新的元素,与循环有关,自己想怎么写 )= 运动(曲线,........) next 角度 -------------------------- 程序比较复杂,再加上看不清图片,没法动手。 |
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
有偿求助:给出凸轮从动件运动规律(位移方程),VB,编写程序,通过凸轮解析法设计,得出X,Y坐标,然后输出数据,格式为Excel
img