QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动); X, T& T0 x; ?$ b# h: |

8 c; b+ e$ Z) n! d% `0 }8 l现有程序问题:只能移动到一边,无法回去(无往复运动)7 ~( R5 G& ]6 ^
7 R2 c+ P7 T2 s; J0 z8 w: P
源代码和注释:

  1. 3 r' j% o8 |. T5 Y, _
  2. Sub Objectmove()1 h1 q2 A* n- M6 f4 x9 @
  3. Dim p0 As Variant '起点坐标- T+ j1 ^9 a) L' ^- j* r6 G6 y, n5 b
  4. Dim p1 As Variant '终点坐标( R: J2 A+ C" x/ g! Q+ ^
  5. Dim pc As Variant '移动时起点坐标  u2 @  i! @6 i7 e! Y
  6. Dim pe As Variant '移动时终点坐标
    8 _6 \; E/ J- @1 b' c
  7. Dim movx As Variant 'x轴增量. m# C8 j. l  i3 q) u; e% y
  8. Dim movy As Variant 'y轴增量0 W+ B0 \  I1 J, Y: p
  9. Dim getobj As Object '移动对象
    ! |) `! b( g4 a: _& S
  10. Dim movtimes As Integer '移动次数
    4 O8 N; F0 W: q5 k2 m# V' _
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    " g- T" V9 s" I$ t# R; a' T- i" b
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
    0 m. C) s* `" @. |* x& H
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")& A; f1 u. D5 m1 {9 K1 u) V2 E: N
  14. pe = p0
    6 [( T" V# w4 I" S
  15. pc = p0" K7 B; G7 [& \& W4 V+ Y" Q6 e
  16. motimes = 3000% _4 i3 B1 t1 U7 z2 A, N$ Y) q( O' W3 x
  17. movx = (p1(0) - p0(0)) / motimes
    ; I3 v( m" k2 Q
  18. movy = (p1(1) - p0(1)) / motimes
    3 K5 Q+ U: J# P8 S- j. o
  19. For i = 1 To motimes8 [" u- K) B7 D6 G. ]7 z3 Q4 U6 |
  20. pe(0) = pc(0) + movx
    6 h2 f# u0 }2 C7 U+ I3 r
  21. pe(1) = pc(1) + movy
    & l  P7 o" g/ y, @0 W" ]
  22. getobj.Move pc, pe '移动一段
    - ^- {1 X5 v" g/ z. B7 R; y
  23. getobj.Update '更新对象( ?( X- H* V$ ^1 s! R3 J7 o
  24. movx = (p0(0) - p1(0)) / motimes
    % j! H7 w0 E6 f: k& A0 |
  25. movy = (p0(1) - p1(1)) / motimes
    * @; q& Y, U6 n% K+ }0 o
  26. For j = motimes To 1
    ( _/ O8 d- f9 l2 D- Q& `3 |/ m
  27. pe(0) = pc(0) + movx
    ; F7 c& }6 v. D+ H6 I8 n
  28. pe(1) = pc(1) + movy/ z6 ^: L5 Q, H9 q" s# [; F% U4 {0 Q
  29. getobj.Move pc, pe '移动一段6 f* p6 h: f6 ?) F" V/ s: K  \2 ~5 P' l
  30. getobj.Update '更新对象
    * d% W+ t, V' A. R4 B5 _
  31. Next j
    3 x. W5 e& x7 H4 G) ^
  32. Next i
    + L  p2 N, B8 f# l
  33. End Sub- \3 b1 ]! p1 N8 Q6 V4 c( l( |; F
复制代码
另:是否我的声明有问题,选择对象是只能单选?
. k, b* U, W7 I/ o0 r) L
; l$ Y% J2 w4 z! J& J5 a- S哪位大哥帮忙看下,再此谢过!' m5 H0 E4 R% t6 I/ U/ R0 b% |7 D
2 l* F: t' v) m2 D) p, F

# [/ W8 V7 ?" T1 m4 A  s
0 @% h0 g: b3 d" t, c* r5 B& V2 o4 L
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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