QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 1473|回复: 0
收起左侧

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
$ d6 U9 `+ s; C
  _* L& N, Y- u现有程序问题:只能移动到一边,无法回去(无往复运动)0 }- W! b' _( G. n
* F7 M+ ^2 g; n. H9 }. R. A  K( s
源代码和注释:

  1. / K" d- z% Z: W2 d$ }
  2. Sub Objectmove()
    2 T' Q$ i! g  }  N' ~' [( ]# \6 Y
  3. Dim p0 As Variant '起点坐标, `5 V' ?3 s1 q
  4. Dim p1 As Variant '终点坐标
    , p+ o$ {+ A3 V, x( V# Q- h% N
  5. Dim pc As Variant '移动时起点坐标2 o% p8 M3 T: H3 E# m8 u# ~. o
  6. Dim pe As Variant '移动时终点坐标' f6 A  U: R" f, r2 y; K  e
  7. Dim movx As Variant 'x轴增量0 ?6 F' u; z  S
  8. Dim movy As Variant 'y轴增量
    9 M) U2 t6 j$ O% q1 C' p
  9. Dim getobj As Object '移动对象# W8 N# e) P3 v* x6 |  S& |
  10. Dim movtimes As Integer '移动次数6 g  J7 v/ {( l: \! }5 Q
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    ( k2 S7 p* |. j0 W) N2 s
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")+ x6 g$ F6 c% G  Q" h/ q7 ]
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    $ g- j+ v, R+ v8 u6 Y
  14. pe = p03 R2 u  U8 T7 ~
  15. pc = p0* }! O! ^' }- l- c4 K8 A8 J# w. Z
  16. motimes = 3000
    # N8 B9 I0 U; x7 B& h  x" a( O
  17. movx = (p1(0) - p0(0)) / motimes3 c( L/ }* `' v" ?( M# e% r
  18. movy = (p1(1) - p0(1)) / motimes
    ) h. E8 A2 z# [: _: D. F
  19. For i = 1 To motimes
    5 U, {" F/ ?  L, I
  20. pe(0) = pc(0) + movx5 A- _, h" t$ z; M0 h1 ~% g0 l
  21. pe(1) = pc(1) + movy
    ; I8 n! J" V0 b3 l% b
  22. getobj.Move pc, pe '移动一段
    ' ^3 U) r+ v% A$ j" |# @5 e3 n
  23. getobj.Update '更新对象
      i, q  y2 A0 A8 i
  24. movx = (p0(0) - p1(0)) / motimes
    # a0 H7 T/ W) o. H
  25. movy = (p0(1) - p1(1)) / motimes
    ! C* k$ X! V7 N7 h( W
  26. For j = motimes To 1# k% m- o5 X0 u" U
  27. pe(0) = pc(0) + movx
    1 H" V5 {. x: [. x" L5 l" O2 m0 j
  28. pe(1) = pc(1) + movy
    + m( x" q7 ^( B  _7 E, o2 ?9 F
  29. getobj.Move pc, pe '移动一段6 U; O9 f6 x6 j! J# d3 H
  30. getobj.Update '更新对象$ W: f7 e% [4 s3 X& P
  31. Next j
    5 |9 Y. N6 p  q# i. N
  32. Next i" h6 n2 I% `* ~& Q( W% W. v! Y) ^
  33. End Sub6 U$ i/ B3 Q. [$ X# ~4 C
复制代码
另:是否我的声明有问题,选择对象是只能单选?* i) P* v/ R# a8 v6 P; t' N
! ~4 S2 ^- P- k( D: b7 L+ o2 k
哪位大哥帮忙看下,再此谢过!
9 _7 k& u2 x/ A" p# m0 Y
" m7 ^( j3 ^! H5 N' Q, O6 _
: @7 Y8 S7 x- J  ~) |
- x$ a' c. L' a1 K+ r  z* R  q- a1 m$ {
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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