QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
" C3 {3 v5 a! ~
* I6 I6 s: j/ e3 T3 d/ M0 N# v4 B& ~现有程序问题:只能移动到一边,无法回去(无往复运动)
  U! X& R! g9 e: K9 T! i$ @8 }- _* d3 ^7 s; o$ y
源代码和注释:

  1. " e* p) g6 ^& N8 m0 p) L
  2. Sub Objectmove()/ F; b0 v6 a+ h; ?- @; ?, L% d
  3. Dim p0 As Variant '起点坐标; G( @' ]( v3 {( l7 v$ a
  4. Dim p1 As Variant '终点坐标/ N2 t: b/ u0 ~- C* @# n2 |
  5. Dim pc As Variant '移动时起点坐标2 [8 V, N/ u- b% X. u1 X0 D2 b
  6. Dim pe As Variant '移动时终点坐标7 Q/ Y; C% N8 @- K! t
  7. Dim movx As Variant 'x轴增量
    & f2 C* R0 f0 b8 ^+ e9 Y# }* j
  8. Dim movy As Variant 'y轴增量
    ! W) j: g2 B! d; W& N. Z/ [
  9. Dim getobj As Object '移动对象
    ; d$ z0 x4 `- v
  10. Dim movtimes As Integer '移动次数
    5 ^* b% T+ v" G& S- r+ A2 u
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"$ h4 a" X- `- e( x- @7 Q0 s
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")4 q; J( |7 w- G. u  S( R9 Q6 v+ Y; ?* ?
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    8 k$ ]' v0 k7 g3 j0 z; T
  14. pe = p0
    & r' B9 G# U2 f  T" v( ?0 _
  15. pc = p0
    ' ^; O- e  O! u
  16. motimes = 30009 D* a. F- [# G5 {7 K$ B
  17. movx = (p1(0) - p0(0)) / motimes4 D$ F% a' p: k! a; K. r; A
  18. movy = (p1(1) - p0(1)) / motimes
    # c8 `6 L* g1 f1 l0 w& ~
  19. For i = 1 To motimes
    0 r: l$ b& k& Q
  20. pe(0) = pc(0) + movx" q$ R# `: S0 G0 e
  21. pe(1) = pc(1) + movy2 \- l3 d5 N( K9 C! Q, J5 _, x
  22. getobj.Move pc, pe '移动一段( Y# h* _" m- s/ U9 A, i. W
  23. getobj.Update '更新对象: `3 Y/ w. a4 a9 g6 \4 T. D
  24. movx = (p0(0) - p1(0)) / motimes2 o- q: O  c3 @: |$ s
  25. movy = (p0(1) - p1(1)) / motimes
    / |! O/ g& o$ `
  26. For j = motimes To 13 y( H2 Q3 f2 g" o
  27. pe(0) = pc(0) + movx6 I& [+ h! A' H4 l
  28. pe(1) = pc(1) + movy
    ) _% v' t! j8 L2 Z
  29. getobj.Move pc, pe '移动一段+ @+ @8 S( x+ C
  30. getobj.Update '更新对象
    5 k! i* c7 p1 M
  31. Next j4 o) @& q& A7 I/ E6 n4 @
  32. Next i
    ) I# Y2 R0 g. l* V8 k; z
  33. End Sub, x5 ?( R! J2 y9 f
复制代码
另:是否我的声明有问题,选择对象是只能单选?3 G, m9 y8 s; y

1 o, `6 t7 z% l9 E* k. f' N$ a哪位大哥帮忙看下,再此谢过!; d5 I& m. ]/ r; M& {+ q) G' o
- V( G; Z' Z- g; l" p
0 k0 o+ H( i7 {' |; {

* }6 @5 q; \: ]# e2 v" k, F0 o  q* h- ~! C; l4 S$ s5 m
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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