QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
; E  w3 E/ B; c. c" u" \- c; Q- M0 p) _$ ?
现有程序问题:只能移动到一边,无法回去(无往复运动)
% d/ A& A1 e! g5 q$ R/ o% \0 U% a6 w3 t" ?8 h
源代码和注释:
  1. 5 u. B0 N9 \8 t1 v6 F: m0 x
  2. Sub Objectmove()/ ?1 N, L+ h/ t( ~
  3. Dim p0 As Variant '起点坐标
    - v- ]5 r& K0 p$ g3 j
  4. Dim p1 As Variant '终点坐标
    ( V- r2 f& H# O, D' ~
  5. Dim pc As Variant '移动时起点坐标
    2 w2 S; b8 l' _* y) r/ L
  6. Dim pe As Variant '移动时终点坐标0 W  H" g9 ?0 H) k8 }
  7. Dim movx As Variant 'x轴增量0 i  h$ A) y/ J3 A2 I- M' F
  8. Dim movy As Variant 'y轴增量, D8 a" l$ U) \
  9. Dim getobj As Object '移动对象
    : o0 q2 f( G3 b
  10. Dim movtimes As Integer '移动次数
    5 b& Z% e# R& \0 [' a- l
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"7 [3 W5 G3 J1 J, ^) d7 A/ u2 G
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:"): X2 w3 Z- e9 h; V# A. t
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
      \& Y! P( t7 n  }$ F0 \: f
  14. pe = p0
    ' U4 M. S4 D0 N5 t' d; Q0 k
  15. pc = p0
    - w2 n; Y( l& y& i6 j5 ^  T
  16. motimes = 3000
    9 M8 W0 o. K& U# ?6 u
  17. movx = (p1(0) - p0(0)) / motimes
      N, v9 l6 `  k+ s+ ^
  18. movy = (p1(1) - p0(1)) / motimes
    & T4 _1 h& D8 U4 Q1 I' E! |
  19. For i = 1 To motimes( \$ w/ x3 Q! V! F) ]$ I$ g  ]7 `
  20. pe(0) = pc(0) + movx
    - G" l3 K% R2 o" i8 v! P8 J/ N* u
  21. pe(1) = pc(1) + movy6 M8 v0 C% {2 ]. r
  22. getobj.Move pc, pe '移动一段0 B7 Z3 D  Q( ?! m+ Z: d, y
  23. getobj.Update '更新对象
    . L+ X+ }2 a( `% a
  24. movx = (p0(0) - p1(0)) / motimes
    : Q7 V! ?% Y  q2 w6 f' R# j2 D9 V6 a
  25. movy = (p0(1) - p1(1)) / motimes
    + W% z0 d2 E9 `* M# t+ s
  26. For j = motimes To 1
    3 D/ ^! B4 A: f; P  T- T# ?
  27. pe(0) = pc(0) + movx
    6 x+ u5 I& S5 H
  28. pe(1) = pc(1) + movy
    % f: ]- \+ h6 A* d( Y9 U
  29. getobj.Move pc, pe '移动一段
    2 o2 Y6 D! y7 f( q. u, [
  30. getobj.Update '更新对象4 r( k' [2 M7 r3 P( Y
  31. Next j
    , M7 g' ]1 m2 o5 H' T+ c
  32. Next i
    3 f7 I7 _* q! [' U
  33. End Sub% Q+ u: H# j% S  C5 S+ q8 K
复制代码
另:是否我的声明有问题,选择对象是只能单选?$ W' w% @/ Q- u; c

+ x* p" a! q' d) \' U哪位大哥帮忙看下,再此谢过!% q' T7 E! A  P2 z2 ]- f9 Z) l
$ d, P3 W: [, s  S

! G; q9 U& g% Q& H4 ~
  k7 E7 Y& {# q7 E( Q7 o6 v6 @& q, S3 c* H8 e
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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