找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 773|回复: 10

[求助] [求助]:怎么样获得矩形,正n边形的中心?

[复制链接]
发表于 2006-4-11 10:20:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
最好是中心的坐标...

谢谢啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-11 10:48:11 | 显示全部楼层
可以用面域求质心的坐标.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-11 11:43:57 | 显示全部楼层
生成面域之后怎么样获得质心坐标啊?

entget?


[PHP]
((-1 . <图元名: 7ef80ce0>) (0 . "REGION") (330 . <图元名: 7ef56cf8>) (5 .
"27C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbModelerGeometry") (70 . 1) (1 . "mogoo lm m o          ") (1 . "ni
^*+0;:,4 ^*+0\\^[ nh ^LR iqoqkqhoof QK mk K*: ^/- nn nnekfeli mooi ") (1 . "n
fqfffffffffffffffj:rooh n:rono ") (1 . ">,27:>;:- {rn rn _nm mogqoqkqhoof |")
(1 . "=0;& {rn rn {rn {m {rn {rn |") (1 . "3*2/ {rn rn {rn {rn {l {n |") (1 .
",7:33 {rn rn {rn {rn {rn {k {rn {m |") (1 . "9><: {rn rn {rn {rn {j {l {rn {i
90-(>-; ;0*=3: 0*+ |") (1 . "300/ {rn rn {rn {rn {h {k |") (1 . "/3>1:r,*-9><:
{rn rn {rn mkolqlomhhjhkiogml kjiqfinlljflnolhgh o o o n n o o 90-(>-;@) V V V
V |") (1 . "<0:;8: {rn rn {rn {g {f {rn {no 90-(>-; {j {rn |") (1 . "<0:;8: {rn
rn {rn {nn {h {rn {nm 90-(>-; {j {rn |") (1 . "<0:;8: {rn rn {rn {h {nl {rn {nk
90-(>-; {j {rn |") (1 . ":;8: {rn rn {rn {nj o {ni jfqkkhofgjnolkggfk {h {nh
90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn rn {rn {nl {g {rn {ng 90-(>-; {j {rn
|") (1 . ":;8: {rn rn {rn {ni o {nf jfqkkhofgjnolkghn {g {mo 90-(>-; _h *1410(1
|") (1 . "<0:;8: {rn rn {rn {f {nn {rn {mn 90-(>-; {j {rn |") (1 . ":;8: {rn rn
{rn {mm o {nj jfqkkhofgjnolkggml {f {ml 90-(>-; _h *1410(1 |") (1 . "):-+:' {rn
rn {rn {no {mk |") (1 . "):-+:' {rn rn {rn {no {mj |") (1 . ",+->687+r<*-): {rn
rn {rn mklhqkioommomomkfm kfkqmjokjmkhnofomg o roqffljfnjlihfnhokof
oqnnlololknnmfhnion o V V |") (1 . ":;8: {rn rn {rn {nf o {mi
jfqkkhofgjnolkggii {nn {mh 90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn {nm
{mg |") (1 . ",+->687+r<*-): {rn rn {rn mlhgqlflgggojljklg jooqfifhhgmfkggigj o
roqknkjlkfnmgoimljji roqfnoollkoflnmlghnf o V V |") (1 . ":;8: {rn rn {rn {mi o
{mm jfqkkhofgjnolkgkgm {nl {mf 90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn
{mn {lo |") (1 . ",+->687+r<*-): {rn rn {rn mkkfqlmmoomjfgnjik
kljqffgglkffflfhn o roqnffjlgkmhgijmhjkj oqfhfgfooongfojkiof o V V |") (1 .
"/061+ {rn rn {rn mklhqkioommomomkfm kfkqmjokjmkhnofomg o |") (1 . "/061+ {rn
rn {rn mlhgqlflgggojljklg jooqfifhhgmfkggigj o |") (1 . "):-+:' {rn rn {rn {ng
{ln |") (1 . ",+->687+r<*-): {rn rn {rn mljlqhjoffomjjfhmh kkiqghoflmjilhgkgf o
oqhlhlfkghnnjlfhimg roqihjkinfngfgmhnknl o V V |") (1 . "/061+ {rn rn {rn
mljlqhjoffomjjfhmh kkiqghoflmjilhgkgf o |") (1 . ",+->687+r<*-): {rn rn {rn
mlfhqjgifhjgomkgfm koiqhniignlmiolom o oqghomhoooilofmkllk oqkfmjhkfgjmhkgkoih
o V V |") (1 . "/061+ {rn rn {rn mkkfqlmmoomjfgnjik kljqffgglkffflfhn o |") (1
. "/061+ {rn rn {rn mlfhqjgifhjgomkgfm koiqhniignlmiolom o |"))[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-11 12:34:06 | 显示全部楼层
[php]
(defun c:test (/ ent obj cen-point)
  (if (setq ent (car (entsel "\n选择一个正多边形:")))
    (progn
      (command "copy" ent "" "0,0" "@")
      (setq ent (entlast))
      (command "region" ent "")
      (setq ent        (entlast)
            obj        (vlax-ename->vla-object ent)
      )
      (setq cen-point (vlax-get obj 'Centroid))
      (vla-delete obj)
      (princ "\n 当前选择的正多边形的中心坐标为:")
      (princ cen-point)
    )
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-11 13:39:52 | 显示全部楼层
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (CMDLA0)
  4.   (setq        ss (ssget)
  5.         i  -1
  6.   )
  7.   (while (setq s1 (ssname ss (setq i (1+ i))))
  8.     (if        (setq pt (xyp-get-center s1))
  9.       (xyp-ZB pt 1000 4)
  10.     )
  11.   )
  12.   (CMDLA1)
  13. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-11 16:26:14 | 显示全部楼层
唉,看来还是需要学习啊.
to ljpnb  谢谢啊 受益匪浅
to xyp1964 我想做一个可以批量以各自中心scale多边形的程序给同事

但是用到函数库 太麻烦了

谢谢大家

呵呵

不知道可以不可以帮我完成批量以各自中心scale多边形的程序

最好不要用到xd的函数库
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-11 16:34:35 | 显示全部楼层
另一种方法(对正N边形有效)
[php]
(defun c:test (/ ss i scale ent ent1 lst cen-point)
  (command "undo" "be")
  (setvar "cmdecho" 0)
  (prompt "\n选择需要缩放的正N边形:")
  (setq        ss (ssget)
        i  -1
  )
  (while (setq ent (ssname ss (setq i (1+ i))))
    (redraw ent 3)
    )
  (setq i -1)
  (setq scale (getreal "\n输入比例系数:"))
  (while (setq ent (ssname ss (setq i (1+ i))))
    (setq
      lst (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget ent))
    )
    (command "circle"
             "3p"
             (cdr (nth 0 lst))
             (cdr (nth 1 lst))
             (cdr (nth 2 lst))
    )
    (setq ent1 (entlast))
    (setq cen-point (cdr (assoc 10 (entget ent1))))
    (entdel ent1)
    (command "scale" ent "" "none" cen-point scale)
  )
  (command "undo" "e")
  (setvar "cmdecho" 1)
  (princ)
)

[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2006-4-11 16:50:22 | 显示全部楼层
求正n边形中心坐标的纯几何算法
[PHP];求正n边形中心坐标的纯几何算法
(defun c:cc()
   (setq cm (getvar "cmdecho"))(setvar "cmdecho" 0)
   (if (setq ent (car (entsel "\n请选择正n边形:")))
       (progn
          (setq ptb (vl-remove-if '(lambda(x)(/= 10 (car x))) (entget ent))
                n   (/ 1.0 (length ptb))
                pto '(0 0 0)
                ptb (vl-every '(lambda(x)(setq pto (mapcar '+ pto x))) ptb)
                pto (cdr (mapcar '* (list n n n) pto))
          )
          (princ (strcat "\n该正n边形的中心坐标:x=" (rtos (car  pto) 2 4)
                                               " y=" (rtos (cadr pto) 2 4)
                 )
          )
        )
   )
   (setvar "cmdecho" cm)(princ)
)[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-4-11 20:39:13 | 显示全部楼层
一般有规则的图案:
GetBoundingBox ,对角线的中点就是.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-12 00:24:36 | 显示全部楼层
不对。举个例子:正三角形就不是。奇数角的正n边形都不是
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-4-13 09:45:53 | 显示全部楼层
通過正n邊形的任意的三頂點畫圓,圓心就是其中心點.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 07:03 , Processed in 0.219849 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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