这是按明总要求改过的程序,可是这不是我要的东西呀!哈哈,我也不认识画出的是什么
本帖最后由 作者 于 2002-12-27 16:28:49 编辑不过改过没有错误提示啦,上传新改过的程序,希望众高手来看看
上传改过的程序
可惜我手头没有相关凸轮参数的手册
天呀!明总都下此结论!我还何处找寻帮助呀!!!!!
[此贴子已经被作者于2002-12-27 18:48:08编辑过]不要急,你先把它计算的几个公式贴出来吧
明总幸好让我看到一丝希望!公式上传啦
本帖最后由 作者 于 2002-12-27 21:37:17 编辑我看了你给出的公式,能不能对非机械专业的我解释解释
我不知道你是否学机械专业的,如果你能告诉我,你需要绘制什么样的曲线,能不能给出曲线方程?我不在乎曲线方程是否复杂。或者,针对你的凸轮绘制要求,是不是可以建立精确的或近似的数学模型,你可以用哪怕微分方程、泛函分析等方法来建立数学模型,只要有数学模型,我想我应该可以帮你做算法设计。不知道是否理解了
本应该在下面回帖,不过在这写可能更方便阅读。绘制凸轮轮廓线,我认为大概就是要计算图中点A(x,y)的详细坐标。根据你的问题、我的理解,点A与基圆圆心O(X,Y)之间的距离应该等于行程S加上基圆半径R,这样得到第一个方程:
(x-X)^2+(y-Y)^2=(S+R)^2 ......(1)
设角AOy(sry,y轴忘记标了)为Alpha,这个角度实际上就应该是凸轮旋转角度,它将在程序中用循环来控制。利用角Alpha,得到第二个方程:
(x-X)/(y-Y)=tg(Alpha) ........(2)
tg指正切函数,我不知道你习惯用tg()还是tan()。
由(2)得:x-X=(y-Y)tg(Alpha) 代入(1)式得:
(1+tg(Alpha)^2)(y-Y)^2=(S+R)^2
而(1+tg(Alpha)^2)=sec(Alpha)^2,从而:
y=Y+cos(Alpha)*(S+R) ......(3)
x=X+(y-Y)tg(Alpha) ......(4)
由(3)(4)式应该可以进行程序设计了。大致思路这样:
变量初始化后,设置一个点坐标数组用于存入曲线各点坐标值。
用For循环,Alpha从0到推程休止角,用Step控制精度。(回程曲线绘制类似)利用(3)(4)式计算曲线点,存入数组。
退出循环后,从数组中取点绘制多义线。
由于不清楚是否已理解你的问题,我暂不往下做了。
up
页:
1
[2]