leilei4908 发表于 2015-10-7 16:36:32

自己写的line2shape,在16.3和16.6都是正常的,但是在15.5只有p1到p2的一条线

本帖最后由 leilei4908 于 2015-10-7 16:39 编辑

p1 = list(startX+dX startY-dY)
p2 = list(endX+dX endY-dY)
p3 = list(endX-dX endY+dY)
p4 = list(startX-dX startY+dY)
origin1 = list(endX endY)
origin2 = list(startX startY)
path = list(list(p1 p2))
if(startX < endX || and(startX == endX,startY < endY) then
    path = append1(path list(p2 p3 0 origin1 width/2 nil))
    path = append1(path list(p3 p4))
    path = append1(path list(p4 p1 0 origin2 width/2 nil))
)
if(startX > endX || and(startX == endX,startY > endY) then
    path = append1(path list(p2 p3 0 origin1 width/2 t))
    path = append1(path list(p3 p4))
    path = append1(path list(p4 p1 0 origin2 width/2 t))
)
lPath = axlMakeDynamicsPath(path)
lPoly = axlPolyFromDB(lPath)
lshape = car(axlDBCreateShape(car(lPoly) t shapelayer))
为什么在15.5不是正常的shape呢?
看pdf,15.5的 axlMakeDynamicsPath这个函数还不支持g_clockwise
是不是因为这个?

其实,两行代码能替代我写的这个line2shape函数了。。。
poly = axlPolyFromDB(line ?endCapType 'ROUND)
lshape = car(axlDBCreateShape(car(poly) t shapelayer))

vivienluo 发表于 2015-10-7 20:32:35

的确是因为函数的版本问题。可以增加一个判断当前版本的功能。

leilei4908 发表于 2015-10-8 09:42:08

本帖最后由 leilei4908 于 2015-10-8 11:28 编辑

vivienluo 发表于 2015-10-7 20:32
的确是因为函数的版本问题。可以增加一个判断当前版本的功能。

那15.5应该怎么画带有圆弧的shape呢?
不能指定path的顺逆时针方向。。
难道是默认的么?
那怎么画“(”这种形状的shape呢,肯定有一个path方向是跟其他三个相反的

vivienluo 发表于 2015-10-10 16:24:06

leilei4908 发表于 2015-10-8 09:42
那15.5应该怎么画带有圆弧的shape呢?
不能指定path的顺逆时针方向。。
难道是默认的么?


你看下15.5版本的那个函数如何使用
页: [1]
查看完整版本: 自己写的line2shape,在16.3和16.6都是正常的,但是在15.5只有p1到p2的一条线