QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1541|回复: 0
收起左侧

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)) p: ?  S) y- A* B! x) X: B
' v  p# i) K( X1 x
现有程序问题:只能移动到一边,无法回去(无往复运动)
. g& R0 R9 D+ w& O5 r9 n$ \: E7 O
源代码和注释:

  1. 6 g! ^8 P7 \2 i8 k
  2. Sub Objectmove()
    - j  ~3 f" j# D4 S" A2 R0 G
  3. Dim p0 As Variant '起点坐标7 ?5 s+ a* h+ L2 ?- |1 q# w
  4. Dim p1 As Variant '终点坐标
    5 {1 I/ i3 T+ t. i- d
  5. Dim pc As Variant '移动时起点坐标
    8 w  N4 k5 g( V1 w% E; J
  6. Dim pe As Variant '移动时终点坐标; h" z; a0 F  P: }) A' w. a
  7. Dim movx As Variant 'x轴增量
    : M+ n- a+ ?# z) O. q" ?3 }1 R2 S
  8. Dim movy As Variant 'y轴增量3 F' A1 W7 ]5 u& r. @
  9. Dim getobj As Object '移动对象
    8 V$ v' O6 h. B5 n- d/ D
  10. Dim movtimes As Integer '移动次数* c+ e/ g: H7 s. r
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"2 d- \! Y/ S8 i
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
    7 K# W# i/ r9 M4 H1 ^; O: _& H6 [5 S
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    , \$ T* i9 S8 s% h' `
  14. pe = p02 W5 C9 S: {) m, V
  15. pc = p0; e8 l2 |. x0 E4 I" |
  16. motimes = 3000
    % r6 O" p/ {1 P4 ?9 B/ I  o0 H
  17. movx = (p1(0) - p0(0)) / motimes
    8 A0 ~7 N& E' z4 F
  18. movy = (p1(1) - p0(1)) / motimes! u6 }4 n5 q& Q
  19. For i = 1 To motimes
    5 Z+ c' c6 ^$ R4 L& s3 _4 D
  20. pe(0) = pc(0) + movx! K5 c$ T% W. I! V" k
  21. pe(1) = pc(1) + movy
    # B$ O% {; b. u) v: R
  22. getobj.Move pc, pe '移动一段
    / C/ Z, D5 r" O. G# k5 U
  23. getobj.Update '更新对象, [& \6 M, X5 R: c, O1 T, t
  24. movx = (p0(0) - p1(0)) / motimes: ~1 f0 r  J: x
  25. movy = (p0(1) - p1(1)) / motimes
    ' t" b& e3 X) y3 y
  26. For j = motimes To 1/ z, d! @6 O  ~0 D3 d# @- O
  27. pe(0) = pc(0) + movx' h  |5 X, x$ i, d. D: ~3 [5 s
  28. pe(1) = pc(1) + movy+ _4 p. g2 V, V
  29. getobj.Move pc, pe '移动一段
    " p. A& a) _4 J8 Z
  30. getobj.Update '更新对象- v- Y. X# N2 w6 T) f: ]; z
  31. Next j4 q4 g' ], w$ q
  32. Next i5 b3 }- C* Q/ V! q
  33. End Sub
    # {& B! d+ J" ?
复制代码
另:是否我的声明有问题,选择对象是只能单选?4 t6 ^9 M/ o/ D. B: f1 {

$ l6 H, H/ }) i% E1 T) q0 `哪位大哥帮忙看下,再此谢过!" T& w1 @  Q( y5 e8 U

0 T6 d0 \: ]! z/ B! @
* a% Z* @. k. I% N6 l/ h, G% V, z0 G1 S" c5 Z. b1 m% B8 F' F

* V# e! \3 v) C: g" H. I9 C, V6 Y5 _
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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