QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)( i3 W  W# [5 f  E9 ?. p  T# U  O  R
) o% y$ Y: V# [, c+ _1 J
现有程序问题:只能移动到一边,无法回去(无往复运动)
. T  T2 w& C9 h% N! A- Y
' A; g* v6 w' D. q源代码和注释:

  1. 1 K9 J0 C% F) n
  2. Sub Objectmove()& Z! a* j$ j! W' }7 z# s. ^- H
  3. Dim p0 As Variant '起点坐标
    % Y. B% h  M. h0 E: @
  4. Dim p1 As Variant '终点坐标
    8 K+ o5 n+ s8 p# H9 u5 Z  U: _8 G
  5. Dim pc As Variant '移动时起点坐标
    " q( f! ~8 D; B8 P" w5 A! y9 W
  6. Dim pe As Variant '移动时终点坐标
    * }- ?- w6 e4 [. ^! @/ C: g8 W
  7. Dim movx As Variant 'x轴增量; m* N- m+ r7 N5 T+ W
  8. Dim movy As Variant 'y轴增量
    0 N; F6 W# k# d. _* D# C$ }
  9. Dim getobj As Object '移动对象
    ) `0 @0 `. [4 q8 C6 X* q  }5 F7 n/ H
  10. Dim movtimes As Integer '移动次数
    + R& B1 U- U" z+ a
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"; u! H3 _9 J' b/ k8 ^- j8 p
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")" \. r; m( _" E' s: p& d
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")$ w2 {2 S& c% F8 A+ S, c
  14. pe = p0
    0 ^* E9 t/ f% n* k/ b) V/ D2 @7 T
  15. pc = p0
    & {  T' z' Q% `9 d1 z
  16. motimes = 30006 _; Y/ h4 @: K4 N4 z) F9 S( ]! x5 H
  17. movx = (p1(0) - p0(0)) / motimes) W5 _3 v, `8 k8 b8 y8 P$ @
  18. movy = (p1(1) - p0(1)) / motimes0 s( K; A1 w# B6 }& X9 j5 o- F* F
  19. For i = 1 To motimes% Z4 P; L, U  v7 ^/ Z6 J* {
  20. pe(0) = pc(0) + movx
    / A* o2 m) @& n+ ?: K; K/ V* ^
  21. pe(1) = pc(1) + movy
    : S9 @6 y% c* ~) O& z" U
  22. getobj.Move pc, pe '移动一段, h, S6 I3 I+ u, V3 T% [
  23. getobj.Update '更新对象/ }5 q7 i5 T+ Z1 M1 }) I% x
  24. movx = (p0(0) - p1(0)) / motimes& [' p' L8 w& `' q9 Y& C5 d
  25. movy = (p0(1) - p1(1)) / motimes1 ^6 O# b% L) H4 T+ Z' B3 ^
  26. For j = motimes To 15 G0 L% ^8 F: g9 `' w
  27. pe(0) = pc(0) + movx
    ' e/ |) B9 y: \* s
  28. pe(1) = pc(1) + movy& H& G" f0 Q: `! ^  ?- C
  29. getobj.Move pc, pe '移动一段
    ' d: h( v& x, r) q2 s! Y, |
  30. getobj.Update '更新对象
    $ |0 T: a6 q: f+ D' R) d
  31. Next j
    7 i9 l  _+ B" k. D
  32. Next i: ?7 l# x. B% q$ Y
  33. End Sub
    ( q% w1 p( {9 I& l! t9 t0 s1 w7 y
复制代码
另:是否我的声明有问题,选择对象是只能单选?0 B0 `2 K/ _% Q0 H6 z& B

+ s$ C" ]( H) j# {4 t0 N3 [哪位大哥帮忙看下,再此谢过!
. |  k) x! Z* q( }+ T0 b+ S/ w
4 u  o3 G% I3 m3 D4 j( \7 z

/ c5 \+ X2 d8 l2 }- O* U
; z4 F  a( j% f' O0 `
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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