QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)! `6 v3 p9 H9 k+ s0 d
3 T8 D' O  @4 O  f2 q: {
现有程序问题:只能移动到一边,无法回去(无往复运动)3 a( b8 z5 H3 e9 x) \0 n

; j2 Q8 ^$ V. n5 W9 P" u$ k8 l源代码和注释:
  1. + y5 }" Z( p( d/ I
  2. Sub Objectmove()8 W5 H1 ?! E' W0 A9 U* ]& \
  3. Dim p0 As Variant '起点坐标
    7 b  Q/ P. f7 `; q/ Z: o
  4. Dim p1 As Variant '终点坐标0 H/ E. W5 e0 N* `: _* b. x
  5. Dim pc As Variant '移动时起点坐标
      }, [2 b% n; o
  6. Dim pe As Variant '移动时终点坐标; a, y/ z  \9 q  A! b& F! W: ]
  7. Dim movx As Variant 'x轴增量' t; @9 F" B# J# _. W* u; g
  8. Dim movy As Variant 'y轴增量5 S& A/ ]8 ]3 q' h4 I2 q
  9. Dim getobj As Object '移动对象2 F& b) F1 v: j" o$ ], }$ D( Q
  10. Dim movtimes As Integer '移动次数
    , C% b7 @6 L, C) D, `
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"0 D- ~; G! C! k9 N- B# v& W
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")& P. u" x& B& T; W$ N) s0 e
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:"); v9 d: K3 ]- B
  14. pe = p0
    & |  B9 o7 S" v( M/ N
  15. pc = p0  K1 {# i3 y& B- t+ {
  16. motimes = 3000
    ' @: M& s. R; |' G5 w1 K
  17. movx = (p1(0) - p0(0)) / motimes
    , ~  N/ o6 Y8 |
  18. movy = (p1(1) - p0(1)) / motimes7 l* j( E/ d3 M! l9 e# Y2 i9 U; ]
  19. For i = 1 To motimes
    ( }4 E+ d2 U- [  |6 g( Z5 |
  20. pe(0) = pc(0) + movx( j  C3 M" Z6 |# ~' W6 y
  21. pe(1) = pc(1) + movy  p, H0 b5 N* c+ g+ S& f
  22. getobj.Move pc, pe '移动一段
    5 E+ V2 o2 [, H
  23. getobj.Update '更新对象
    3 z8 ~9 j& T( A+ U8 s) j5 T4 V
  24. movx = (p0(0) - p1(0)) / motimes) X3 f0 i6 }9 U5 B
  25. movy = (p0(1) - p1(1)) / motimes( O! `7 G2 S0 E
  26. For j = motimes To 1; m5 v' |$ c, L) B: i) l3 n: u
  27. pe(0) = pc(0) + movx
    8 f6 \. B  Q! R& c$ `6 {
  28. pe(1) = pc(1) + movy
    ' \8 D8 F% i- K. E' a
  29. getobj.Move pc, pe '移动一段
    0 v$ ^6 ]0 ~. Q8 b
  30. getobj.Update '更新对象
    ( G2 {* B6 O; y; ~6 }4 B  `
  31. Next j" a( V. i9 x8 f; f6 @8 O* G+ p5 z* v' T" p
  32. Next i
    % [5 |1 R" ?/ H: s7 n
  33. End Sub' R( i' r" f" v2 U
复制代码
另:是否我的声明有问题,选择对象是只能单选?
3 ?' v* x, d  {3 k  [
0 |  B: z' T! i% t哪位大哥帮忙看下,再此谢过!
" N8 E5 {# e/ {# p0 H" N" [, d* \; _! Z2 l2 j$ ]
0 X* G  F: I8 \2 q9 ?: u! j
* {8 M' l; i1 b! z6 m/ A
- F8 G, O# G; P
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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