明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 荒野孤行

[源码] 动画 → 撞壁回弹球

  [复制链接]
发表于 2015-6-16 08:27:36 | 显示全部楼层
这个和lee-mac好像
发表于 2015-6-16 11:11:53 | 显示全部楼层
学习下,太牛了
发表于 2015-6-19 14:50:50 | 显示全部楼层
  1. ;;;****程序开始*****
  2. (defun c:ft ()
  3.   (setvar "cmdecho" 0)
  4.   (setvar "osmode" 0)
  5.   (princ "\n提示:程序开始...按Esc键可结束.\n")
  6.   (setq dx (getvar "screensize"))
  7.   (setq kgb (/ (car dx) (cadr dx)))
  8.   (setq hd (getvar "viewsize"))
  9.   (setq vcen (getvar "viewctr"))
  10.   (setq  a (list  (- (car vcen) (* hd kgb 0.5))
  11.     (- (cadr vcen) (/ hd 2))
  12.     )
  13.   )
  14.   (setq b (list (+ (car a) (* hd kgb)) (+ (cadr a) hd)))
  15.   (setq pcen vcen)
  16.   (setq r (* 2 (/ (abs (- (cadr a) (cadr b))) 10)))
  17.   (setq  a (list (+ (car a) r) (+ (cadr a) r))
  18.   b (list (- (car b) r) (- (cadr b) r))
  19.   )
  20.   (setq  ss (ssadd)
  21.   n  0
  22.   )
  23.   (command "color" 1)
  24.   (while (< n 10)
  25.     (command "circle" pcen r)
  26.     (ssadd (entlast) ss)
  27.     (setq n (+ n 1))
  28.   )
  29. ;;;  (setq obj (entlast)
  30. ;;;  e (entget obj))
  31.   (xunhuan ss a b r)
  32. )


  33. (defun xunhuan (ss a b r / col n ang angs ang1 col)
  34.   (setq angs (list 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1))
  35.   (while T
  36.     (setq n 0)
  37.     (while (< n 10)
  38.       (setq e   (entget (ssname ss n))
  39.       obj   (ssname ss n)
  40.       pcen (cdr (assoc 10 e))
  41.       col   (cdr (assoc 62 e))
  42.       ang   (nth n angs)
  43.       )
  44. ;;;      (setq f (polar pcen ang (/ r 100)))
  45. ;;;      (setq e (subst (cons 10 f) (assoc 10 e) e))
  46. ;;;      (entmod e)
  47.       (command "move" obj "" pcen (polar pcen ang (/ r 100)))
  48.       (setq pcen (polar pcen ang (/ r 100)))
  49.       (if (or (> (car pcen) (car b))
  50.         (< (car pcen) (car a))
  51.         (> (cadr pcen) (cadr b))
  52.         (< (cadr pcen) (cadr a))
  53.     )
  54.   (progn
  55.     (setq pcen0 (polar pcen (+ ang pi) (/ r 100)))
  56.     (cond  ((inters pcen pcen0 a (list (car a) (cadr b)))
  57.      (setq ang1 (- pi ang))
  58.     )
  59.     ((inters pcen pcen0 b (list (car b) (cadr a)))
  60.      (setq ang1 (- pi ang))
  61.     )
  62.     (t (setq ang1 (- (* 2 pi) ang)))
  63.     )
  64.     (princ ang)
  65.     (princ ang1)
  66.     (setq angs (subst ang1 ang angs))
  67.     (princ angs)
  68.     (setq col (1+ col))
  69.     (if (= 7 col)
  70.       (setq col 1)
  71.     )
  72.     (command "change" obj "" "p" "c" col "")
  73. ;;;    (setq e (subst (cons 62 col) (assoc 62 e) e))
  74. ;;;    (entmod e)
  75.   )
  76.       )
  77.       (setq n (+ n 1))
  78. ;;;      (command "delay" "1")
  79.     )
  80.   )
  81. )
发表于 2015-10-11 01:54:53 | 显示全部楼层
这个好玩,又可以拿来装了
发表于 2015-10-11 01:59:12 | 显示全部楼层
可否加点东西,在按ESC结束后,自动删除图中的回弹球
发表于 2015-10-11 09:33:13 | 显示全部楼层
好玩好玩啊
发表于 2015-10-11 18:16:04 | 显示全部楼层
这个厉害学习了
发表于 2015-10-12 17:12:49 | 显示全部楼层
鼓掌
发表于 2015-10-13 08:04:01 | 显示全部楼层
路过,学习了
发表于 2016-8-4 12:58:31 | 显示全部楼层
这个不错,,,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 20:29 , Processed in 0.174481 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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