首先,我先指出我前面的一个错误,认为物体是匀速运动的,这个是片面的。
通过几天的思索,我觉得这个问题越来越有意思了,也想的越来越多。
---------------------------------
关于时间t的问题。
我是这样认为的,可以这样来看待一条曲线,一条在座标平面(空间)上客观存在的曲线是一条曲线,把一个手榴弹扔出去形成的一条和时间有关系的抛物线也是一条曲线。
---------------------------------
acad对曲线采用了参数方程的定义。就是一个parameter,我们可以通过下面这个lisp检查一条曲线的parameter分布。
在这里面,曲线是有起点0,也有终点endparam的,我们可以简单的认为这个param是一个时间,在0时刻的时候它停在起点,在param时刻它到达终点。
(defun c:L1 ()
(vl-load-com)
(setvar "pdmode" 3)
(setq obj (vlax-ename->vla-object(car(entsel))))
(setq endparam (vlax-curve-getEndParam obj))
(setq divi (/ endparam 50.0))
(setq sdivi 0)
(repeat 50
(setq start (vlax-curve-getpointatparam obj sdivi))
(setq sdivi (+ sdivi divi))
(command "point" start)
)
)
我们也可以看出,param的分布对于直线,圆是均匀的,而对于椭圆、spline及pline的不同区间是不均匀的,这个表明了,这个不是匀速运动的。在椭圆比较平缓的地方,单位时间内的位移比较大,而在急转弯的地方,单位时间内的位移比较小,也就是速度比较小,firstderiv的矢量长度比较小,方向呢,始终沿着切线方向(这个由微时间内的两个位移矢量相减可以容易得到)
---------------------------------
我们可以看出,对于一条直线,它的起点par是0,终点是1,中间是均匀的。假如它的长度是L的话,那么,它的速度就是L/1=L,方向沿着这个方向,而加速度由于不同时间的速度方向及大小都相同,因此加速度为0,secondderiv为0。
---------------------------------
对于一个圆,它的起点par是0,终点是2π=6.28(为什么这么定义呢?我现阶段的认为就是acad公司人为的规定,autodesk的disccusion中也分为两派,一派认为要弄清楚它为什么,另外一派认为是黑箱操作,不要去理它)。由于圆的par也是均匀分布的(为什么要均匀分布呢?我认为par的分布是为了给secondderiv服务,为了让secondderiv得到的加速度矢量数值可以来表示曲线的凹凸程度),因此圆的周长是2πR,那么其速度大小为2πR/2π=R,其加速度大小为a=V*V/R=R*R/R=R(这个是物理匀速圆周运动的公式),这两个大小可以通过3楼的Lisp得到验证。可以发现,时间是在这里面出现了,param=2π,由于时间是人为规定了,在运算过程中被消掉了。
我们完全可以这样认为,这是autodesk公司的人为规定,因为假如沿着圆进行加速运动的时候,这个firstderiv和secondderiv将完全不一样。
---------------------------------
对于一个椭圆,概念和圆差不多,但是它的para是不均匀的,在平缓处分布得疏,在急弯处分布的密,我们可以发现这样的情况,加速度始终指向中心,速度大小也始终变化。在平缓处的速度大,加速度小,凹凸度也小。在急弯处的速度小,加速度大,凹凸度也大,所以我个人认为,加速度矢量的大小可以代表凹凸程度,也就是楼主说的可以用distance的绝对值大小来代表凹凸度,这个在spline里面也可以得到验证,对于平面曲线和空间曲线都是一样的,因为我们发现,用参数方程表示的曲线,firstderiv和secondderiv和座标系,座标原点是没有关系的,这个非常好。
对于椭圆,我发现存在这样的规律,就象是星系中的星空开普勒定律
开普勒定律认为:行星(地球)绕着恒星(太阳)旋转的时候,太阳和行星的连线在相等的时间内扫过相等的面积。
所以对于椭圆,其加速度指向中心是符合万有引力,其速度的大小满足r*mv=定值(注意,是矢量乘法,r和v是矢量)的物理规律。
所以,反过来,我认为,param的不均匀分布是为secondderiv满足合理化规律而服务的。
---------------------------------
对于一个折线pline,它的param分布是第一个折段为0-1,第二个折段为1-2,依次递加的,所以,它的速度沿着同段是均匀的,不同段间是不均匀的。
---------------------------------
对于spline,它的param值非常大,可以达到几十,现在还没有发现它的大小规律,但是初步的感觉是这样的,spline是一种高次曲线,比直线1次,圆2次的都高,随着次数的增大,其param值变大,而且增长速度快。所以我们可以发现,其速度值非常小,因为同样的 ds/dt,由于t变的很大,所以速度变小,同样的,加速度也变得很小,所以我们看到的firstderiv和seconderiv都很小。但是由于对凹凸度secondderiv的矢量长度及Param的分布研究,我们同样可以认为,secondderiv的矢量大小可以表示凹凸度的大小。
---------------------------------
总结如上的测试结果及思想,个人的看法是
1.不能把firstderiv 和secondderiv和一阶导数和二阶导数等同起来,但是
一阶导数确实是firstderiv的矢量的方向角tan值。而secondderiv的矢量大小可以定量的来判断同一个曲线不同位置的凹度(曲度)
secondderiv的矢量长度越大,代表的曲线在这个位置的曲度越大。它不存在座标代数的正负数值,对空间曲线及平面曲线都一样。
二阶导数和一阶导数的关系是:secondderiv是firstderiv对param的导数,可以通过画出一个微param内的两个速度的差,比上d(param),不过验证起来可能有点难。
2.时间这个参数t是蕴涵在firstderiv和seconderiv里面的,但由于autodesk人为定义了param的分布,所以,时间参数最终没有体现出来。
我的问题是:
acad定义param的方法是什么,我只是看出了大概,但是应该有一个统一的定义的,大概是我数学不过关,请大家指点。
可能是这个问题我想的有点偏吧,好像对楼主的问题一直都回答的不好,也希望哪位大侠再发表一下讲解,谢谢。