亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 點(diǎn)集的直徑.lsp

?? 計(jì)算幾何中的幾種lisp語言的算法
?? LSP
字號(hào):
;;;************************************************************************
;;;一個(gè)求點(diǎn)集合的凸包的lisp程序--------------------------------------------
;;;------采用的算法為禮品包扎法--------------------------------------------
;;;方法為最右端的點(diǎn)開始處理,將該點(diǎn)作為凸包邊界的第一個(gè)點(diǎn)P1,從最初的垂直線
;;;方向繞P1順時(shí)針旋轉(zhuǎn),直到碰到另一個(gè)P2這就是凸包邊界的第二個(gè)點(diǎn)P2,依此類推
;;;p2求得p3......直到又重新回到p1,已經(jīng)考慮了各種退化情況和浮點(diǎn)運(yùn)算,其算法
;;;時(shí)間不超過O(n.h),其中h是凸包的復(fù)雜度,時(shí)間還是很快的。大家不妨驗(yàn)證。    
;;;參考文獻(xiàn)<<計(jì)算幾何-算法及其應(yīng)用>>(第二版),以及參考了其他網(wǎng)站的一些源代碼
;;;------------------------------------------------------------------------
;;;其中程序主段是核心算法,其他的附加程序?yàn)槿〉命c(diǎn)集,畫凸包邊界線,測(cè)試大量
;;;點(diǎn)集函數(shù)處理所花費(fèi)的時(shí)間。----------------------------------------------
;;;用法: 加載lisp運(yùn)行test選取點(diǎn),直線段,或多義線(全是直線段組成)即可。----
;;;************************************************************************
(defun C:test (/ sel t0 ptlist pp 2Pi)
  (setq 2Pi (* 2 pi))
  ;;(setq	sel (ssget (list '(0 . "POINT"))))                  ;選擇點(diǎn)集
  (setq sel (ssget))
  (if (setq ptlist (getpt sel))                             ;構(gòu)造點(diǎn)集
    (progn
      (setq t1 (getvar "CDATE"))                            ;計(jì)時(shí)開始
      ;;(setq t0 (getvar "TDUSRTIMER"))                       ;開始計(jì)時(shí)
      (setq p1 (hull ptlist))                               ;求凸包
      (setq t2 (getvar "CDATE"))                            ;計(jì)時(shí)結(jié)束
      (setq pp (Max-distance p1))
      (setq t3 (getvar "CDATE")) 
      (princ "\n求點(diǎn)集的凸包用時(shí):")
      (princ (* (- t2 t1) 1e6))
      (princ "秒")
      (princ "\n凸包共有")
      (princ (length p1))
      (princ "個(gè)頂點(diǎn)")
      (princ "\n求凸包的直徑用時(shí):")
      (princ (* (- t3 t2) 1e6))
      (princ "秒")
      (princ "\n總用時(shí)=最大距離點(diǎn)對(duì)用時(shí):")
      (princ (* (- t3 t1) 1e6))
      (princ "秒")      
      ;;(princ (* (- (getvar "TDUSRTIMER") t0) 86400))        ;結(jié)束計(jì)時(shí)
    )
  )
  (if (null pp)
    (alert "點(diǎn)的有效數(shù)目太小,請(qǐng)重新輸入!")
    (entmake                                                ;畫凸包
      (append
       '( (0 . "LWPOLYLINE")
	  (100 . "AcDbEntity")
	  (100 . "AcDbPolyline")
	)
	(list (cons 90 (length pp)))                        ;頂點(diǎn)個(gè)數(shù)
	(mapcar '(lambda (x) (cons 10 x)) pp)               ;多段線頂點(diǎn)
	(list (cons 70 0))                                  ;閉合的
	(list (cons 62 1))                                  ;紅色的
      )
    )
  )
  (princ)
)
;;;==========================
;;;程序主段,可以單獨(dú)成為函數(shù)
;;;==========================

;;;右半部的凸包
(defun hull1 (pts MaxPt MinPt / nextPt hullPt)
  (if (< (length pts) 3)
    pts
    (progn
      (setq nextPt (Max-angle1 pts MaxPt))                  ;從最上面的點(diǎn)開始
      (setq hullPt (cons nextPt (cons MaxPt hullPt)))       ;順時(shí)針求得第一點(diǎn)
      (while (not (equal nextPt MinPt 1e-8))                ;到最下面的點(diǎn)為止
        (setq nextPt (Max-angle pts nextPt))                ;循環(huán)求凸包每一點(diǎn)
	(setq hullPt (cons nextPt hullPt))                  ;把每點(diǎn)加入凸包集
      )
    )
  )
)
;;;左半部的凸包
(defun hull (ptlist / revPts 2ndPts maxYp1 minYp1 maxYp2 minYp2
	              ptlst1 ptlst2 +ptlst -ptlst hullp1 hullp2)
  (setq revPts (mapcar 'reverse ptlist))                    ;點(diǎn)表的X和Y交換
  (setq 2ndPts (mapcar 'cadr ptlist))                       ;點(diǎn)表的Y值的表
  (setq maxYp1 (reverse (assoc (apply 'max 2ndPts) revPts)));最上面的點(diǎn)
  (setq minYp1 (reverse (assoc (apply 'min 2ndPts) revPts)));最下面的點(diǎn)
  (setq maxYp2 (list (- (car maxYp1)) (cadr maxYp1)))       ;鏡像后最上面的點(diǎn)
  (setq minYp2 (list (- (car minYp1)) (cadr minYp1)))       ;鏡像后最下面的點(diǎn)
  (foreach n ptlist                                         ;把點(diǎn)表分成兩部分
    (if (> (det minYp1 n maxYp1) 0)                         ;如果左轉(zhuǎn)
      (setq ptlst1 (cons n ptlst1))                         ;加入右半部分
      (setq ptlst2 (cons n ptlst2))                         ;否則左半部分
    )
  )
  (setq +ptlst (cons minYp1 (cons maxYp1 ptlst1)))          ;右半部分
  (setq -ptlst (Mirror-list-X ptlst2))                      ;左半部分以Y軸鏡像
  (setq hullp1 (hull1 +ptlst maxYp1 minYp1))                ;右半部分的凸包
  (setq hullp2 (hull1 -ptlst maxYp2 minYp2))                ;左半部分鏡像的凸包
  (setq hullp2 (cdr (reverse (cdr hullp2))))
  (setq hullp2 (Mirror-list-X hullp2))                      ;左半部分的凸包
  (append hullp1 hullp2)                                    ;把凸包左右相加
)
;;;鏡像左半部分
(defun Mirror-list-X (ptlist)
  (mapcar (function (lambda (x)(list (- (car x))(cadr x)))) ptlist)
)
;;;求點(diǎn)集中夾角的最大值的點(diǎn)
(defun Max-angle (ptlist pt / An)
  (setq An (mapcar (function (lambda (x) (angle pt x))) ptlist))
  (nth (- (length An) (length (member (apply 'max An) An))) ptlist)
)
(defun Max-angle1 (ptlist pt / An)
  (setq An
    (mapcar
      (function
        (lambda (x)
	  (if
	    (and
	      (equal (cadr x) (cadr pt) 1e-8)
	      (> (car x) (car pt))
	    )
	    (+ 2Pi (- (car x) (car pt)))
	    (angle pt x)
	  )	   
	)
      )
      ptlist
    )
  )
  (nth (- (length An) (length (member (apply 'max An) An))) ptlist)
)
;;定義三點(diǎn)的行列式,即三點(diǎn)之倍面積
(defun det (p1 p2 p3 / dx1 dy1 dx2 dy2)
  (setq	dx1 (- (car  p2) (car  p1))
	dy1 (- (cadr p2) (cadr p1))
	dx2 (- (car  p3) (car  p1))
	dy2 (- (cadr p3) (cadr p1))
  )
  (- (* dx1 dy2) (* dx2 dy1))
)
(defun Max-distance (ptlist / maxD halfPi HullP1 l HullP2 midPts
		              i j Pi+1 Qi+1 Ai+1 D-i PairPt)
  (setq MaxD nil)
  (setq 2Pi  (* 2 pi))
  (setq halfPi (/ Pi 2))
  (setq HullP1 (Hull ptlist))
  (setq l      (1- (length HullP1)))
  (setq HullP2 (append (cdr HullP1) (list (car HullP1))))
  (setq midPts (mapcar 'mid-pt HullP1 HullP2))
  (setq i 1)
  (foreach pt (reverse (cdr (reverse HullP1)))
    (setq j i)
    (setq Pi+1 (nth i HullP1))
    (setq Qi+1 (nth i midPts))
    (setq Ai+1 (ang Qi+1 pt Pi+1))
    (while (and (< Ai+1 halfPi) (< j l))
      (setq j (1+ j))
      (setq Ai+1 (ang (nth j midPts) Pt (nth j HullP1)))  
    )
    (setq D-i  (distance pt (nth j HullP1)))
    (setq MAXD (cons (list D-i (1- i) j) MAXD)) 	  
    (setq i (1+ i))  
  )
  (setq PairPt (assoc (apply 'Max (mapcar 'car MaxD)) MaxD))
  (list
    (nth (cadr  PairPt) HullP1)
    (nth (caddr PairPt) HullP1)
  )
)
(defun mid-pt (p1 p2)
  (list
    (* (+ (car  p1) (car  p2)) 0.5)
    (* (+ (cadr p1) (cadr p2)) 0.5)
  )
)
;;;============
;;;程序主段結(jié)束
;;;============

;;;依據(jù)曉東網(wǎng)站的代碼改寫而成的取點(diǎn)函數(shù)
(defun getpt1 (ss / a b c d i p)
  (setq	i 0)
  (if ss
    (repeat (sslength ss)
      (setq a (ssname ss i))
      (setq b (entget a))
      (setq c (cdr (assoc 10 b)))
      (setq c (list (car c) (cadr c)))
      (setq p (cons c p))
      (setq i (1+ i))
    )
  )
  p
)
;;定義三點(diǎn)的夾角函數(shù)
(defun ang (p1 p2 p3 / x)
  (setq x (abs (- (angle p1 p3) (angle p1 p2))))
  (if (< x Pi) x (- 2Pi x)) 
)
(defun C:tt (/ p1 p2 p3)
  (initget 1)
  (setq p1 (getpoint "\n輸入第一點(diǎn):"))
  (setq p2 (getpoint "\n輸入第二點(diǎn):"))
  (setq p3 (getpoint "\n輸入第三點(diǎn):"))
  (ang p1 p2 p3)
)  
;;;取點(diǎn)函數(shù)2
(defun getpt (ss / i listpp a b c d)
  (setq	i 0)
  (if ss
    (repeat (sslength ss)
      (setq a (ssname ss i))
      (setq b (entget a))
      (setq ename (cdr (assoc 0 b)))
      (cond
	( (= ename "LWPOLYLINE")
	  (setq c (get-LWpolyline-vertexs b))
	  (setq listpp (append c listpp))
	)
	( (= ename "LINE")
	  (setq c (cdr (assoc 10 b)))
	  (setq d (cdr (assoc 11 b)))
	  (setq c (list (car c) (cadr c)))
	  (setq d (list (car d) (cadr d)))
	  (setq listpp (cons c listpp))
	  (setq listpp (cons d listpp))
	)
	( (= ename "POINT")
	  (setq c (cdr (assoc 10 b)))
	  (setq c (list (car c) (cadr c)))
	  (setq listpp (cons c listpp))
	)
      )
      (setq i (1+ i))
    )
  )
  listpp
)
;;取得多邊形頂點(diǎn)
(defun get-LWpolyline-vertexs (entlst / n lst)
  (foreach n entlst
    (if (= (car n) 10)
      (setq lst (cons (cdr n) lst))
    )
  )
  lst
)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品第一页| 亚洲一区二区影院| 国产成人综合网| 日本一区二区三区在线观看| 国产精品白丝jk黑袜喷水| 国产欧美综合在线| 99久久综合狠狠综合久久| 亚洲中国最大av网站| 51精品国自产在线| 精品写真视频在线观看| 欧美高清在线一区| 色婷婷亚洲综合| 日本中文在线一区| www成人在线观看| 99精品国产99久久久久久白柏| 亚洲图片你懂的| 欧美日韩成人综合在线一区二区| 精品在线你懂的| 欧美高清在线视频| 欧美日本一区二区| 国产一区二区在线看| 亚洲猫色日本管| 日韩一区二区不卡| 99re8在线精品视频免费播放| 樱花影视一区二区| 久久婷婷色综合| 色94色欧美sute亚洲线路一ni| 日本不卡视频在线观看| 亚洲国产精品t66y| 91精品国产综合久久婷婷香蕉| 国产精品资源在线看| 亚洲国产精品精华液网站| 久久婷婷国产综合精品青草| 国产性色一区二区| 欧美亚洲丝袜传媒另类| 国产精品1区二区.| 午夜电影一区二区| 中文字幕亚洲一区二区av在线 | 国内精品久久久久影院一蜜桃| 久久九九影视网| 精品视频免费在线| 成人av中文字幕| 看电视剧不卡顿的网站| 亚洲午夜av在线| 国产精品视频一二| 久久新电视剧免费观看| 欧美一区二区三区在线| 99久久伊人久久99| 国产精品 日产精品 欧美精品| 亚洲成人动漫在线观看| 亚洲欧美偷拍卡通变态| 国产免费观看久久| 久久尤物电影视频在线观看| 7777精品伊人久久久大香线蕉的| 91亚洲大成网污www| 国产美女精品人人做人人爽| 三级亚洲高清视频| 亚洲国产日韩a在线播放| 亚洲色图视频网| 中文字幕一区二区不卡| 日本一区二区三区电影| 日韩亚洲欧美一区| 欧美精选一区二区| 欧美人妇做爰xxxⅹ性高电影| 欧美中文字幕不卡| 色偷偷一区二区三区| 91丨九色丨尤物| 99久久精品国产网站| 不卡一区二区中文字幕| 粉嫩高潮美女一区二区三区| 69av一区二区三区| 欧美三日本三级三级在线播放| 91色视频在线| 91免费观看在线| 日本高清视频一区二区| 91国在线观看| 91高清视频在线| 91传媒视频在线播放| 色系网站成人免费| 欧美性猛片aaaaaaa做受| 91视频精品在这里| 色综合久久中文综合久久97| 99天天综合性| 欧美网站一区二区| 欧美日本一区二区三区四区 | 99精品视频中文字幕| av电影在线观看不卡| 色综合久久天天| 欧美视频一区在线| 欧美一级黄色片| 久久这里都是精品| 中文字幕五月欧美| 性欧美大战久久久久久久久| 奇米亚洲午夜久久精品| 国产精品1024| 日本高清不卡aⅴ免费网站| 欧美性受xxxx| 91精品国产丝袜白色高跟鞋| 欧美一区二区精品久久911| 久久理论电影网| 日韩美女啊v在线免费观看| 一区二区三区视频在线看| 亚洲图片欧美综合| 久久91精品国产91久久小草| 成人午夜视频网站| 欧美色倩网站大全免费| 欧美va在线播放| 国产精品久久久久久久蜜臀 | 国产成人在线视频免费播放| www.亚洲人| 欧美一区二区日韩| 国产精品久久久久久久久图文区 | 精品免费一区二区三区| 国产精品福利一区二区| 性欧美疯狂xxxxbbbb| 国产一区二区三区观看| aaa国产一区| 日韩免费观看2025年上映的电影| 久久精品视频在线免费观看| 亚洲综合小说图片| 国产麻豆精品在线| 欧美日韩一区二区在线观看| 欧美一级理论性理论a| 国产精品传媒入口麻豆| 毛片一区二区三区| 欧美在线免费播放| 国产亚洲人成网站| 日日夜夜一区二区| 99久久精品免费观看| 欧美r级电影在线观看| 一区二区三区国产豹纹内裤在线| 国产一区二区在线观看视频| 欧美裸体bbwbbwbbw| 日韩一区日韩二区| 国内精品伊人久久久久av影院| 精品污污网站免费看| 国产精品天天看| 国产一区二区三区在线观看免费 | 欧美综合在线视频| 国产欧美在线观看一区| 美国毛片一区二区| 欧美丰满少妇xxxxx高潮对白| 亚洲少妇中出一区| 成人午夜看片网址| 26uuu国产日韩综合| 日本亚洲最大的色成网站www| 色婷婷国产精品综合在线观看| 国产女人aaa级久久久级| 九九国产精品视频| 欧美xxxx在线观看| 青青草原综合久久大伊人精品| 欧美综合一区二区三区| 中文字幕日韩一区| 波多野结衣在线一区| 国产欧美日韩精品a在线观看| 极品少妇一区二区三区精品视频| 欧美久久一区二区| 三级在线观看一区二区| 欧美高清你懂得| 午夜电影网亚洲视频| 欧美日韩成人在线一区| 亚洲h动漫在线| 欧美精品三级日韩久久| 日本亚洲欧美天堂免费| 91精选在线观看| 99热精品国产| 亚洲精品久久久蜜桃| 色哟哟欧美精品| 一区二区三区免费在线观看| 91久久香蕉国产日韩欧美9色| 亚洲婷婷综合久久一本伊一区| 99久久精品国产导航| 亚洲男女毛片无遮挡| 91视频在线观看免费| 一区二区三区欧美激情| 欧美无砖专区一中文字| 无码av中文一区二区三区桃花岛| 欧美日韩色综合| 老司机免费视频一区二区三区| 日韩精品一区二区三区视频在线观看| 蜜桃av一区二区在线观看| 亚洲精品一区二区三区99| 国产精品中文字幕一区二区三区| 欧美国产一区二区在线观看| 91在线视频官网| 夜夜嗨av一区二区三区四季av| 欧美精品久久久久久久久老牛影院| 日韩福利视频导航| 亚洲精品在线网站| aaa欧美大片| 五月激情综合色| 久久只精品国产| 91福利视频在线| 九一九一国产精品| 国产精品二三区| 欧美日韩视频专区在线播放| 国内精品久久久久影院色| 国产精品丝袜一区| 欧美人与z0zoxxxx视频| 国产电影一区在线|