QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1573|回复: 0
收起左侧

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
3 O% y: M3 j6 ^+ F, h: n3 n& ~( \/ B+ i# {4 K/ _* y
现有程序问题:只能移动到一边,无法回去(无往复运动)
( k0 w3 V, K. n: @6 d9 E: |# [, o* p/ E- g2 T) q* v+ _
源代码和注释:
  1. 1 B9 _" _0 K5 I
  2. Sub Objectmove()2 _( M' P1 \9 Y; d. _* f3 L( e
  3. Dim p0 As Variant '起点坐标3 i% K. c: n6 y3 V4 I( {' g
  4. Dim p1 As Variant '终点坐标. z# ?* A* k1 L; ?  H6 @/ C
  5. Dim pc As Variant '移动时起点坐标
    , {  T/ r5 R! s
  6. Dim pe As Variant '移动时终点坐标
      G3 f" D7 _  N+ |7 e3 b
  7. Dim movx As Variant 'x轴增量
    . N: p' X5 r9 H4 K0 Y  X
  8. Dim movy As Variant 'y轴增量
    . n- s7 Y( F  L" U
  9. Dim getobj As Object '移动对象) E" b0 Y# O3 ^! P
  10. Dim movtimes As Integer '移动次数
    . C7 t5 b1 I: A2 M7 j3 \& e
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"- N* Y4 X* n+ g2 T5 r0 z7 C- @/ W
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")% d: J& }0 s$ \& v& q( z3 ]
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")# D6 A) i* G' [' r6 h# \
  14. pe = p0
    6 z. X" T- d, U# `, }. T6 k
  15. pc = p0
    * e3 Q. T7 b2 U3 G
  16. motimes = 3000* o8 s2 N8 U+ G9 }1 ~% w: V5 g
  17. movx = (p1(0) - p0(0)) / motimes
    ' h, [% K5 M% s: h' G9 v2 Q2 |" I
  18. movy = (p1(1) - p0(1)) / motimes
    + f3 q0 }" L) T7 _0 Y, Z8 G
  19. For i = 1 To motimes
    0 o- S& _* M0 j9 ?+ s
  20. pe(0) = pc(0) + movx  p9 p4 l& ^9 Q& d, I' u3 n; v) B
  21. pe(1) = pc(1) + movy
    ) J1 s( U5 |1 X* p
  22. getobj.Move pc, pe '移动一段
    . v' s, r+ d0 o, G
  23. getobj.Update '更新对象
    & e9 T' i8 Z* ?7 U7 |* D7 }
  24. movx = (p0(0) - p1(0)) / motimes9 N, O' d$ L: N2 ?4 T$ r
  25. movy = (p0(1) - p1(1)) / motimes. E8 V( m% ]2 V8 A
  26. For j = motimes To 1
    ! \4 W" C% R( l& d# ?
  27. pe(0) = pc(0) + movx
    ) r/ ^9 _6 B& H! p7 l# |4 F. @2 k" O
  28. pe(1) = pc(1) + movy
    6 P; A6 U% ?# R$ K7 }4 {
  29. getobj.Move pc, pe '移动一段
    2 i- A6 ^" e3 @1 G
  30. getobj.Update '更新对象0 }1 c2 s; j% j" R, ~6 q; {! M
  31. Next j, s6 s6 E" ]  y
  32. Next i' R+ k1 {* [, t$ [6 R
  33. End Sub8 N/ U' @8 g8 q; e
复制代码
另:是否我的声明有问题,选择对象是只能单选?
7 x5 x( n8 z: Z/ y0 T" t
) o/ |0 X" F9 Q# G2 z; L哪位大哥帮忙看下,再此谢过!
) b0 Y% I: v6 }7 w( F" J8 b9 J( v! m
! O" ^3 C. W3 i* |, }1 Q, Z% R! h! z

0 D4 |" v8 y' z6 U  j
( R# L2 E& w# m& A5 ^. L
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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