找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1231|回复: 2

[表格] (XD::Table:Map)制作表格型数据表的MAP

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-8 00:28:55 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Table:Map
调用格式: (XD::Table:Map colWidths rowHeights)
参数说明: colWidths --- 列宽度表
rowHeights--- 行高度表
返回值: ( (左上点 行号 列号) ....)
函数简介: 制作表格型数据表的MAP
函数来源: 原创
函数作者: XDSoft
适用版本: XDRX API 
最后更新时间: 2014-12-07
备注: 命令: !a
(5.06517 9.70824 8.01985)
命令: !b
(5.26316 5.0 10.0)
命令: (XD::TABLE:MAP a b)
(((0.0 0.0 0.0) (0 0)) ((5.06517 0.0 0.0) (0 1)) ((14.7734 0.0 0.0) (0 2))
((0.0 -5.26316 0.0) (1 0)) ((5.06517 -5.26316 0.0) (1 1)) ((14.7734 -5.26316
0.0) (1 2)) ((0.0 -10.2632 0.0) (2 0)) ((5.06517 -10.2632 0.0) (2 1)) ((14.7734
-10.2632 0.0) (2 2)))
演示图片: -

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

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

×
  1. ;|
  2. 制作表格型数据表的MAP
  3. 参数:  colWidths --- 列宽度表
  4.         rowHeights--- 行高度表
  5. 返回值:( (左上点 行号 列号) ....)
  6. 说明:  行号,列号从0开始
  7. |;(defun XD::Table:Map (colWidths rowHeights / basept cols i j p1 pt pts pts1 rows xdir ydir)
  8.   (setq xdir '(1.0 0.0 0.0)
  9.         cols (length colWidths)
  10.         rows (length rowHeights)
  11.         i 0
  12.         xdir (xdrx_vector_normalize xdir)
  13.         ydir (xdrx_vector_perpvector xdir)
  14.         ydir (xdrx_vector_negate ydir)
  15.   )
  16.   (setq basept '(0.0 0.0 0.0)
  17.         pts nil
  18.         pt basept
  19.   )
  20.   (repeat rows
  21.     (setq j 0)
  22.     (setq pts1 (list pt (list i j))
  23.           pts (cons pts1 pts)
  24.           p1 pt
  25.     )
  26.     (repeat (1- cols)
  27.       (setq p1 (mapcar
  28.                  '+
  29.                  p1
  30.                  (xdrx_vector_product xdir (nth j colWidths))
  31.                )
  32.             pts (cons (list p1 (list i (1+ j))) pts)
  33.             j (1+ j)
  34.       )
  35.     )
  36.     (setq pt (mapcar
  37.                '+
  38.                pt
  39.                (xdrx_vector_product ydir (nth i rowHeights))
  40.              )
  41.           i (1+ i)
  42.     )

  43.   )
  44.   (setq pts (reverse pts))
  45. )


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

已领礼包: 2963个

财富等级: 家财万贯

发表于 2014-12-8 11:36:45 | 显示全部楼层
怎样应用,能举个例子不?

点评

应该是建立个映射关系,这个MAP是左上点0,0,0, X轴正方向,Y轴负方向的一个表,每个交点上有交点坐标和单元格的行列号信息。以后不管表格是正交的,还是有角度的,可以很容易的变换到实际的表格上,可以方便的查询  详情 回复 发表于 2014-12-8 12:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-8 12:03:46 | 显示全部楼层
819534890 发表于 2014-12-8 11:36
怎样应用,能举个例子不?

应该是建立个映射关系,这个MAP是左上点0,0,0, X轴正方向,Y轴负方向的一个表,每个交点上有交点坐标和单元格的行列号信息。以后不管表格是正交的,还是有角度的,可以很容易的变换到实际的表格上,可以方便的查询每个单元格的准确坐标位置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 18:38 , Processed in 0.313340 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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