QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)7 Z! J2 p; i9 t- B0 _: {

, |  j) A, G0 [* f6 k; X. \* m现有程序问题:只能移动到一边,无法回去(无往复运动)9 D+ Z0 x. i. ~

0 j: ?0 x  B6 q( b& g/ b! T8 B源代码和注释:

  1. 1 ?& H) e3 Q# Y
  2. Sub Objectmove()
    " }: J4 `' h2 s7 U
  3. Dim p0 As Variant '起点坐标
    ! M3 |9 l: Z# Y- T
  4. Dim p1 As Variant '终点坐标
    % W7 z! s, D  C
  5. Dim pc As Variant '移动时起点坐标7 z6 t& ^( _: i* N
  6. Dim pe As Variant '移动时终点坐标" n' _; c1 G4 h5 j3 ?9 N$ K3 c2 P/ }
  7. Dim movx As Variant 'x轴增量% B  l1 ?1 I) b# n7 C
  8. Dim movy As Variant 'y轴增量3 R. M6 J8 D0 o) A2 q$ c
  9. Dim getobj As Object '移动对象
    9 S5 z( e7 C$ j, `3 e8 J3 l, K
  10. Dim movtimes As Integer '移动次数
    / E. V8 T( O5 t* }1 S8 |( q1 P0 x& M
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象") u! H8 B% c5 d) g& s% A
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")
    ( t: c. g4 T& p4 F
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    2 B2 K8 q, T' E0 d( {1 y
  14. pe = p0
    ( r1 w; G8 r0 Y& @% M" R- }
  15. pc = p0
    % F7 Y6 v0 U& L9 G/ E4 ~/ p
  16. motimes = 3000/ _5 z; h+ t+ h& G  v$ t
  17. movx = (p1(0) - p0(0)) / motimes
    # |+ W! v$ C/ U, n" y9 A6 h2 t
  18. movy = (p1(1) - p0(1)) / motimes1 f8 _( M6 l- K2 Y, u! c3 f; {
  19. For i = 1 To motimes. L8 K( o/ r& B4 |3 j* o$ d  E
  20. pe(0) = pc(0) + movx
    4 b$ {, L. u6 O5 i# c5 O, |- Z/ l4 L
  21. pe(1) = pc(1) + movy3 T2 o) k9 Z' R% k
  22. getobj.Move pc, pe '移动一段" I7 A3 X4 b6 ^
  23. getobj.Update '更新对象
    9 N& Q% _: }, H$ y0 |# P
  24. movx = (p0(0) - p1(0)) / motimes# I7 Q7 G( I. y* T
  25. movy = (p0(1) - p1(1)) / motimes
    ) Y* I* o. y" b7 q" t2 ^+ k
  26. For j = motimes To 1
    $ q3 O! B# g) y3 n' \; ?( P
  27. pe(0) = pc(0) + movx2 p! w- g) ?7 t" ?, E- a' `! b" n
  28. pe(1) = pc(1) + movy
    / T, i5 c' z5 u, \1 _
  29. getobj.Move pc, pe '移动一段
    9 X* D# Y4 m9 J+ w
  30. getobj.Update '更新对象5 V* ~2 y) Z0 x& Y1 h& G
  31. Next j( E* R& P$ h! p2 @
  32. Next i. e# }8 q, T( }) c
  33. End Sub4 H9 r! g9 B; V0 b4 Y- K* ]
复制代码
另:是否我的声明有问题,选择对象是只能单选?
- u1 Y/ A/ U  `4 m: p6 ?# ?; [  c6 Y* O7 W
哪位大哥帮忙看下,再此谢过!
  M8 j0 V' n0 V: s& `
/ B; ]7 A9 {' G+ w
" O2 ]6 N8 k) i1 n4 U
! D7 a! h7 D& z" @  d# d# w7 m' ]* n& t: {: i) Q4 l
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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