QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)9 w% o0 g2 U' X" ~, W* S
  u! d( x7 z# ]7 a6 B  b( C
现有程序问题:只能移动到一边,无法回去(无往复运动)" ]& u% U2 l" I0 n( G7 ^* K

' t8 D3 a8 X3 S4 e9 ?源代码和注释:

  1. $ q/ E* m/ j0 i" N& O
  2. Sub Objectmove()2 e6 m0 n* Z  b6 G/ A
  3. Dim p0 As Variant '起点坐标# P( r4 G6 D5 }# X" P' G
  4. Dim p1 As Variant '终点坐标- y: \/ n9 Q+ A3 O$ m2 H! y
  5. Dim pc As Variant '移动时起点坐标2 A( t8 j: \9 g. i; F6 a! P( e/ z
  6. Dim pe As Variant '移动时终点坐标7 \& ~6 y+ O  f& N
  7. Dim movx As Variant 'x轴增量) J" Z) K& S4 s' U* z% k$ {& P6 v
  8. Dim movy As Variant 'y轴增量
    6 |3 T  m3 l2 n& d* F: ]4 O
  9. Dim getobj As Object '移动对象
    ( b1 u7 e3 C5 F5 n
  10. Dim movtimes As Integer '移动次数; k& t  M. f: F6 [9 u! @
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    * s* n5 j5 A. K; Y9 C* o/ f) @  e* a
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
    , R6 t/ `! @9 C1 Z% |2 K
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")2 L5 K5 e* @; h8 O5 a. }
  14. pe = p02 p8 q- b* q% {2 S" b6 o
  15. pc = p0) B7 R0 {0 w9 p7 R3 s
  16. motimes = 30000 z0 W- v# {% k$ c2 _. x
  17. movx = (p1(0) - p0(0)) / motimes
    ! X9 V. Y  ~8 |) e0 @
  18. movy = (p1(1) - p0(1)) / motimes6 q7 j2 ~/ c1 v0 T
  19. For i = 1 To motimes4 k- N2 k; t( z; f& P# t. `
  20. pe(0) = pc(0) + movx
    " L0 Z! ~& h5 r0 U3 v& w$ Q4 h
  21. pe(1) = pc(1) + movy
    - K2 b" T1 K" j  \+ }% ?3 D
  22. getobj.Move pc, pe '移动一段
    4 T; A3 ~2 C" n6 z& j+ G" I8 h
  23. getobj.Update '更新对象0 g+ E  `* O: g* s8 _# W9 t% ~
  24. movx = (p0(0) - p1(0)) / motimes
    2 H3 e% Y) K( N, R5 h
  25. movy = (p0(1) - p1(1)) / motimes6 y* P9 q* y& c8 c  q* [5 k
  26. For j = motimes To 1
    - W5 O! |& p1 b( }6 z! P, K* L
  27. pe(0) = pc(0) + movx
    9 G0 G& `+ \$ o1 A5 D
  28. pe(1) = pc(1) + movy
    ! t. J0 R  b2 i2 d2 X8 x
  29. getobj.Move pc, pe '移动一段
    7 k3 E; i& }1 u& x/ L
  30. getobj.Update '更新对象' q4 s* H# Z4 v
  31. Next j
    6 \" \: Y+ Z! k: c+ C. C4 c
  32. Next i
    5 [. L# {- r9 ^1 A9 x
  33. End Sub- s% S5 c) @: a# _: j/ Z' {
复制代码
另:是否我的声明有问题,选择对象是只能单选?7 }+ L+ B# D# ?% q) W2 u
) R( R4 G: G8 q& ~$ j5 G
哪位大哥帮忙看下,再此谢过!
7 F6 g: v/ z# c4 i7 x' j3 Z: e; l  D: p0 s0 Z, H
0 t5 ^" }6 R+ ?2 t$ L7 F
' C5 [/ ]6 o+ _1 Y" b% `0 t* w

& k, }* w4 A8 ^- K4 k" D( E* n
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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