QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
" O6 y4 s1 i% Y6 U/ h; H, N+ ^/ T, b
现有程序问题:只能移动到一边,无法回去(无往复运动)
9 ?/ x2 a1 v/ K7 _- i( s$ P9 `# F) q) a8 R6 M1 J% e
源代码和注释:
  1. 2 }% v+ R* l8 _& \" X
  2. Sub Objectmove(): l/ R, `9 S' P- i" H1 D
  3. Dim p0 As Variant '起点坐标
    7 p; k2 F. W9 W  L1 {
  4. Dim p1 As Variant '终点坐标7 I& s0 [: S7 G
  5. Dim pc As Variant '移动时起点坐标7 m! D! x+ z- p+ g4 u' Q1 H, s* u
  6. Dim pe As Variant '移动时终点坐标
    # V  ~$ R7 x' T1 E, i, R7 N6 G2 c
  7. Dim movx As Variant 'x轴增量
    2 I3 @% S  t$ b' _/ H
  8. Dim movy As Variant 'y轴增量* {: ]0 |; M7 N% w" t
  9. Dim getobj As Object '移动对象# B3 K" z6 \: W3 W9 a
  10. Dim movtimes As Integer '移动次数  d: b* @3 j1 j# }- u% V& a7 E6 _! }# x6 d
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    & }: \2 d  T; H1 t0 t
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")9 O; K5 H$ B- Q
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")
    # {( Y! g2 X9 T5 t, a! z
  14. pe = p0
    & E' O. T" t6 }5 `: {- A6 k
  15. pc = p0
    * M0 }' W& I" N7 M  m% }
  16. motimes = 3000
    5 F' {) ^/ m, c3 P; w
  17. movx = (p1(0) - p0(0)) / motimes
    / j5 f: L0 u1 B. D# t( V3 S3 `
  18. movy = (p1(1) - p0(1)) / motimes2 q/ t6 x( N: Q* r4 J) A
  19. For i = 1 To motimes
    , B- R0 v0 c( e5 C0 ^; R
  20. pe(0) = pc(0) + movx! n4 N( X/ ^9 P( b+ V4 ]% d
  21. pe(1) = pc(1) + movy
    " w$ W' c" e0 c* \# h/ S& F
  22. getobj.Move pc, pe '移动一段
    2 _$ g0 d. j' x0 ^1 P1 f
  23. getobj.Update '更新对象; |" f2 M8 x9 E6 y6 d, o/ t2 j
  24. movx = (p0(0) - p1(0)) / motimes
    / b- p0 R4 L. i% A) l) G# k/ u  I
  25. movy = (p0(1) - p1(1)) / motimes
    % X6 g8 C  B6 l; S( I+ w
  26. For j = motimes To 13 h) B$ [4 H6 \! C& h
  27. pe(0) = pc(0) + movx1 Y  J  M  z6 M4 l$ m$ [1 `! Y! m- n
  28. pe(1) = pc(1) + movy2 U3 a! m! N* b2 @
  29. getobj.Move pc, pe '移动一段) T: b0 c1 g, n0 v# N4 F8 ?
  30. getobj.Update '更新对象
    / t' t) d# u6 L
  31. Next j: v1 _# {  Z* U% Z. y' R* R
  32. Next i
    & t0 I6 W) y$ Y, [8 j5 ?7 Y
  33. End Sub  I6 c) F4 p3 i, T( U0 ?3 t2 w* |+ K
复制代码
另:是否我的声明有问题,选择对象是只能单选?
: X# W3 x% l! ?) Z) j# J) K  z; f
哪位大哥帮忙看下,再此谢过!# ?$ n+ Z- g7 S/ V$ O3 N
* ^; ?; j5 m. W4 i& u5 O9 C
8 `# o! \9 C1 Q& J1 B- N3 _
. p7 D+ t- O) Z" h# R2 P1 k0 D! I

# @6 x0 x2 y) z+ i* H: U
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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