QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
程序目的:  模拟运动(选择物件,使其做往复运动)
7 P% Z+ s, ]8 V' ]% D1 g" Y- k! x$ p8 V) ]$ m9 E) Q% Y
现有程序问题:只能移动到一边,无法回去(无往复运动)
% Q# v  l. z2 V2 g9 ?! q6 w9 ], Q; _2 e
源代码和注释:

  1. 8 I  y0 U& Y4 p6 J
  2. Sub Objectmove()
    ( b4 F8 m8 v" }- z! Y. C# V
  3. Dim p0 As Variant '起点坐标
    " n& m7 S, |; P* H5 `7 c
  4. Dim p1 As Variant '终点坐标5 L$ ]+ @7 ^& U( x8 ]2 ]0 |6 K$ Y5 E
  5. Dim pc As Variant '移动时起点坐标
    2 a! d: B  C8 k4 Z  [3 L, ^0 u
  6. Dim pe As Variant '移动时终点坐标
    / L/ {/ H5 G8 |+ K7 S" j$ p
  7. Dim movx As Variant 'x轴增量* V3 j. }7 o8 a5 ^( C4 s
  8. Dim movy As Variant 'y轴增量
    8 d% W* w# E9 Q! x+ \
  9. Dim getobj As Object '移动对象9 b: o$ T( I6 V& }
  10. Dim movtimes As Integer '移动次数
    ( {6 h- V) j- h  o3 s) L' A! A
  11. ThisDrawing.Utility.GetEntity getobj, po, "请选择移动对象"% S- V/ ~& c: H, l) z, S+ u
  12. p0 = ThisDrawing.Utility.GetPoint(, "起点:")% e6 r5 N) D. X  n: P6 ^( E
  13. p1 = ThisDrawing.Utility.GetPoint(p0, "终点:")# ~6 [2 [. b! _0 T9 J, m
  14. pe = p0( x7 e  V* H/ N2 o  k
  15. pc = p0
    " K) \% O3 o7 t- X. z
  16. motimes = 3000
    1 q3 Z) h$ u# }5 G7 O9 M
  17. movx = (p1(0) - p0(0)) / motimes
    6 k) Y: H7 Y& Y$ v. p8 N# l4 w5 ^
  18. movy = (p1(1) - p0(1)) / motimes
    : `6 `% q1 t! ]8 J+ B& h
  19. For i = 1 To motimes
    0 o% g8 a8 Y8 m( m, _: @: v6 F
  20. pe(0) = pc(0) + movx/ W7 T3 R7 K* e1 ]% A
  21. pe(1) = pc(1) + movy) j. e6 ]! G, k0 p/ N6 x' K
  22. getobj.Move pc, pe '移动一段
    . L: z; Z: Y4 _$ I# |/ \
  23. getobj.Update '更新对象, ^# e2 E, i5 H$ K* Q
  24. movx = (p0(0) - p1(0)) / motimes
    4 |* \# M3 m4 w  Y7 ?0 g
  25. movy = (p0(1) - p1(1)) / motimes
    6 k6 R& z( n1 W& S6 X/ |
  26. For j = motimes To 1
    1 c& C' L% ~- _* L
  27. pe(0) = pc(0) + movx
    1 L1 X( Q9 Y7 c
  28. pe(1) = pc(1) + movy
    & Z  ?8 D5 y  g2 [) g; d
  29. getobj.Move pc, pe '移动一段8 a2 @( I) W# y) G
  30. getobj.Update '更新对象
    ' N( p5 L. G: Z5 L9 q8 p& r
  31. Next j- ?# T& f4 L/ ^8 x3 r0 i  L% s
  32. Next i5 L' ~6 V# O& E/ v
  33. End Sub9 C/ }1 b1 N% q0 }* g  ]1 \
复制代码
另:是否我的声明有问题,选择对象是只能单选?$ K3 E' s# |/ m2 W6 ]6 A
; F+ F1 C% p8 T4 `; N' Y& H% T3 W
哪位大哥帮忙看下,再此谢过!
0 ^4 S0 e. v* u( a6 {. L. \7 r8 V4 |, }# x  B# n" X
- [% o7 J5 l0 z. O* K
4 ^( {$ z5 k# e  ~! J: V+ w

, Z% V  q. a( D* S) r$ m* t: f
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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