QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6天前
查看: 1531|回复: 0
收起左侧

[求助] 选择对象做往复运动,不知道问题出在哪?附源代码和注释

[复制链接]
发表于 2015-6-16 17:34:23 | 显示全部楼层 |阅读模式 来自: 中国广东东莞

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
程序目的:  模拟运动(选择物件,使其做往复运动); ~; V% l! H/ `$ n9 r& [

8 |) d% \( @7 Q0 Y现有程序问题:只能移动到一边,无法回去(无往复运动)% i& e% b1 N$ k: |) a' |- h( U  g& ~

  Y- e( e: q$ \( G, C( T' O源代码和注释:

  1. 4 M1 ^+ v( S) s  o" d& V
  2. Sub Objectmove()$ Y8 ~1 y* x2 f# j/ T# W: Q0 A. c
  3. Dim p0 As Variant '起点坐标
    ! z+ O* L2 M3 c- M0 B  d
  4. Dim p1 As Variant '终点坐标+ s$ E/ l" R+ S2 G3 y0 _+ B
  5. Dim pc As Variant '移动时起点坐标
    * b. B+ x7 C+ S- j/ r/ h: Y
  6. Dim pe As Variant '移动时终点坐标# |" Z' Y1 k7 l  y( h: Z) n; F
  7. Dim movx As Variant 'x轴增量
    4 \$ @9 w% @5 N6 A7 U
  8. Dim movy As Variant 'y轴增量' j& o- @: R. G0 j
  9. Dim getobj As Object '移动对象
    9 I+ h# C& g9 Y, U0 c. ^/ a2 r7 x
  10. Dim movtimes As Integer '移动次数
    1 G+ O3 b6 P' J7 d( |
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    , L% @, x6 b6 C9 A& Y
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
      l  m7 h7 ~+ m
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:"); `4 T- i6 a# E7 c
  14. pe = p07 M) J8 q# t/ k) f: u3 ?
  15. pc = p0- ~: w3 ]9 q8 Y! s
  16. motimes = 3000
    ! `9 A5 \; H- a' B; i) S
  17. movx = (p1(0) - p0(0)) / motimes
    5 Y9 b3 O9 m' q3 x& N6 Y, A
  18. movy = (p1(1) - p0(1)) / motimes6 c9 x+ M& C3 [" R1 n
  19. For i = 1 To motimes
    ( c9 t) W% A5 i* n. E
  20. pe(0) = pc(0) + movx
    , \) }' l4 h/ r. Q
  21. pe(1) = pc(1) + movy/ \/ [; Z( J  f( h+ X/ C
  22. getobj.Move pc, pe '移动一段
    : r& w8 X, X  N: L- o
  23. getobj.Update '更新对象
    ) Y3 r0 W4 x  [, ~9 m5 L
  24. movx = (p0(0) - p1(0)) / motimes
    % D7 `) b% P/ W, B
  25. movy = (p0(1) - p1(1)) / motimes
    0 C% E: U! D* i+ u6 }" ^% x
  26. For j = motimes To 1
    0 ^8 X" \# y* U9 Z& u( e
  27. pe(0) = pc(0) + movx2 W' z8 _1 C! ^
  28. pe(1) = pc(1) + movy" A4 e8 i- j5 ]8 o0 x
  29. getobj.Move pc, pe '移动一段
    5 l& p3 W5 n9 D, F
  30. getobj.Update '更新对象+ h1 y, o2 ]6 r+ f
  31. Next j
    " A. m7 L4 l; z' u8 V
  32. Next i8 w  ]7 P4 Q0 w$ B8 m/ h
  33. End Sub/ c" S5 Y! Y2 }. R! f
复制代码
另:是否我的声明有问题,选择对象是只能单选?
% ~! M! b; ^7 \2 x' ]" A2 R& c& w/ U
哪位大哥帮忙看下,再此谢过!
6 j2 Z( C/ H6 H  a* q
3 ~+ v9 V0 [5 V* m& }/ |# I
3 Z& [  ]+ i6 p9 f4 L1 o! ?4 S' ~: N
: z! i4 [7 ]" ]+ B: e4 l
# U5 ?4 h+ T! \! {2 ]
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表