QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动); E) }3 B% `* X
$ p4 b" b: T9 Z
现有程序问题:只能移动到一边,无法回去(无往复运动)% I' {( W$ i+ t3 f9 m

) [9 I6 T0 |  W  T源代码和注释:
  1. . e& [7 S. ~* u
  2. Sub Objectmove()
    7 h8 H% o6 I7 H+ m1 }9 m% x
  3. Dim p0 As Variant '起点坐标6 i" k) r8 `: W
  4. Dim p1 As Variant '终点坐标! h. M4 o6 G/ V6 Z  r
  5. Dim pc As Variant '移动时起点坐标. O: l- K! M8 c3 E3 p
  6. Dim pe As Variant '移动时终点坐标5 j% p( a" p" m% ?7 {0 S4 v
  7. Dim movx As Variant 'x轴增量) y  e7 }1 l+ g" N) D- s/ Q6 a
  8. Dim movy As Variant 'y轴增量
    # W% N  J' u, R/ x2 A! A( {  A5 N" A
  9. Dim getobj As Object '移动对象; ]# G9 U, s8 C. H! S# v+ w
  10. Dim movtimes As Integer '移动次数: J2 i0 g- e4 B. y, l- c0 |3 t
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"
    " d! U9 B7 p: ^) }. A+ G
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:"); r4 v" Z  J( {; Z: [
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")* O- `2 H: L1 u& Y! h- S+ N2 l
  14. pe = p0/ N) j2 h: k- h: |! g' A5 [% `
  15. pc = p0& \, z& E# P$ D0 z, x# i9 d
  16. motimes = 30008 e% r6 x0 ^- `" Q! O& a0 V
  17. movx = (p1(0) - p0(0)) / motimes, O4 X# J5 s: X7 m5 R: ]" o2 H: R
  18. movy = (p1(1) - p0(1)) / motimes
    ' f0 x  P1 z+ g. {
  19. For i = 1 To motimes, J$ W9 V, o! ^; V: g0 _
  20. pe(0) = pc(0) + movx% J& b; D% B$ [  f% S8 R
  21. pe(1) = pc(1) + movy
    ( o1 j6 [! ^/ x; H+ Y, H+ ]: E, V
  22. getobj.Move pc, pe '移动一段
    ) t3 _% Z: O, I  s6 u: o; e% a
  23. getobj.Update '更新对象
    + U! l3 Q2 p) }6 b% P) t
  24. movx = (p0(0) - p1(0)) / motimes& m, B' @: i& b* @& o
  25. movy = (p0(1) - p1(1)) / motimes
    4 X4 S5 c4 O* M
  26. For j = motimes To 14 h+ }5 v* _+ x
  27. pe(0) = pc(0) + movx
    5 K- L; h; I! s0 E0 P
  28. pe(1) = pc(1) + movy" T1 ^/ G# |# |9 x" E* r
  29. getobj.Move pc, pe '移动一段
    ) C% E( `. @( x3 [3 I& K8 X
  30. getobj.Update '更新对象
    ( Q; d' A$ a3 a) A) g- I
  31. Next j& n; i+ v5 _, R5 h+ Z
  32. Next i
    , n( G  \! Y0 F' q3 j6 g
  33. End Sub
    : {( G9 X* [6 n' Q
复制代码
另:是否我的声明有问题,选择对象是只能单选?7 n$ Q8 q* y$ c9 g
' ?: D2 A$ Y  f* l; L
哪位大哥帮忙看下,再此谢过!
( F* V1 D2 h  z- a5 Z* ?4 \1 O8 M2 `! |

4 ^& N% w/ T2 E' ]' p( `6 h' ]
* A5 A" ]7 q$ m# V( H( z( T( E" Q8 W$ W6 j
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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