QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 1470|回复: 0
收起左侧

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)7 y( a4 t4 ?( i2 D. C* t, ~  {

. C1 W9 A% V5 x6 Q现有程序问题:只能移动到一边,无法回去(无往复运动)) [5 }" J  [2 H; W2 l9 K

! T' q& f2 Y8 c% T% n源代码和注释:

  1. . g5 u  r5 F( v% ?% ~) n/ |, d
  2. Sub Objectmove()
    3 U& {/ O* n3 |0 T% W3 {7 k4 a- ]  v% S
  3. Dim p0 As Variant '起点坐标
    0 l2 P- W0 a* i% @6 {* d
  4. Dim p1 As Variant '终点坐标3 A! p3 ?( P4 g. d
  5. Dim pc As Variant '移动时起点坐标
    - Z6 o& G$ b  H
  6. Dim pe As Variant '移动时终点坐标) ?1 e: W7 x, t( B& H7 S1 j: V0 |: i& v
  7. Dim movx As Variant 'x轴增量
    ( I4 i  ~/ y: Y0 ]$ r
  8. Dim movy As Variant 'y轴增量
    + y) P; t$ j' b- `" B4 o
  9. Dim getobj As Object '移动对象8 p1 M$ e( }# E- A& ]5 O
  10. Dim movtimes As Integer '移动次数
    ' v1 ^( T$ P( e5 m* q
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
      ^5 A# r$ ]3 x) \/ R
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
    8 P% c% l5 s# {4 a# Q; c5 @
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    " G, ]) M! r8 J' }! |7 x
  14. pe = p0
    0 \3 u( t0 F6 P  }
  15. pc = p0
    7 E: t4 P- g4 f/ J4 m
  16. motimes = 3000
      E0 ]! _% y, l9 C/ Z
  17. movx = (p1(0) - p0(0)) / motimes
    9 C, d/ x; M: W2 s
  18. movy = (p1(1) - p0(1)) / motimes% Z, L. U- _. _& ~0 j' c& [" R9 r
  19. For i = 1 To motimes
    * k- g% v4 D% Y7 s1 C7 e
  20. pe(0) = pc(0) + movx% l  U% N5 }1 x, \- s$ |( k' p4 g
  21. pe(1) = pc(1) + movy, f$ [5 R& `! S
  22. getobj.Move pc, pe '移动一段
    3 _  S: v4 Q* Y2 ~3 b
  23. getobj.Update '更新对象
    + q  D5 z/ e3 a% O* f; O, v
  24. movx = (p0(0) - p1(0)) / motimes
    6 \* b6 p  ]- z6 s% G
  25. movy = (p0(1) - p1(1)) / motimes- G( J! O' i  K! Z) }3 ^3 i0 A
  26. For j = motimes To 1
    - e0 _8 K8 b- F3 q& C- a4 f
  27. pe(0) = pc(0) + movx
    " W$ V! r) g9 j3 |
  28. pe(1) = pc(1) + movy5 A9 |' `; V0 g1 \! x3 b/ e
  29. getobj.Move pc, pe '移动一段
    8 d# s% r2 o3 i6 I" G: E
  30. getobj.Update '更新对象
    . m% ^7 h9 c; j
  31. Next j; ?9 L- k- n' V) ?& S7 D2 P
  32. Next i
    / r! Z$ F. z6 K% a9 M) [  f+ z3 {
  33. End Sub
    7 \' l9 Y( h. l& {! A! o
复制代码
另:是否我的声明有问题,选择对象是只能单选?
' U) r8 E% w9 q# u7 Z9 L: \
* L7 B2 M2 v1 U8 M' e哪位大哥帮忙看下,再此谢过!& Z2 Q5 r1 t* V" R

9 X  b* a# t+ s. U/ o) x3 x$ G$ n
, }0 F, K  ^3 ?& X- G! ]4 I# C! g- j/ n' n% U8 \* }

' w$ G8 e, W- L; S0 r- v
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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