【问题标题】:DXF image entity group code explanationDXF图像实体组代码说明
【发布时间】:2014-01-09 01:14:01
【问题描述】:

我正在开发一个 Delphi 类以从 DXF 文件导入/导出某种实体。 我想添加对 Image 实体的支持,但我不明白一些组代码。

我正在使用官方 DXF 指南参考 (2002):http://www.autodesk.com/techpubs/autocad/dxf/dxf2002.pdf

我已了解组代码 10、20 和 30,其中有“插入点”并且像任何其他实体一样工作。

问题是组码: -11、21 和 31:单个像素的 U 向量(沿图像视觉底部的点, 从插入点开始)(在 WCS 中);

-12、22 和 32:单个像素的 V 向量(沿图像视觉左侧的点, 从插入点开始)(在 WCS 中);

我认为 DXF 将它用于缩放和旋转,但我不明白如何。

谢谢

【问题讨论】:

    标签: image cad dxf


    【解决方案1】:

    这些组码用于控制图像的旋转和缩放。

    组码102030控制图片左下角的插入点。

    组码112131 用于在3D 空间中定义一个向量,该向量是一条线的端点,其起点假定为0,0,0,而不管起点是什么图片。这些组码描述了一个相对向量。

    这个相对向量(比例因子为 1)由一个半径为 1/8 的平方根或 0.352733677 的圆约束...

    例如,插入的图像未旋转且比例因子为 1,其 112131 组代码值分别为 0.352733677,0,0

    插入的图像没有旋转且比例因子为 2,其 112131 组代码值分别为 0.7054673542,0,0

    以 45 度旋转和 1 比例因子插入的图像将分别具有 0.25,0.25,0112131 组代码。这是一个奇怪的偶数,但这是数学的结果。

    比例因子是半径为 sqrt(1/8) 的圆的乘数。根据比例因子获得此半径后,您可以使用旋转角度的sincos 确定“11”和“21”值。

    122232 组代码具有相似的值,但针对图像的左边缘。
    相同的数学将用于确定它们的值。这似乎是对图像的过度约束,但这就是规范的工作方式。

    编辑

    上述答案仅对以 72 dpi 保存并插入公制(毫米级)绘图的光栅图像有效。

    例如,用于确定“11”组代码中的正确值(在 AuoCAD 绘图中插入图像时为 1 的比例因子)的公式是:

    (drawing units per inch) / (dpi of image)
    

    在使用毫米作为绘图单位的公制 dxf 绘图中,以及以 72 dpi 保存的光栅图像中,比例因子将为 25.4/72 = .35277778

    在使用毫米作为绘图单位的公制 dxf 绘图中,以及以 96 dpi 保存的光栅图像中,比例因子将为 25.4/96 = .26458333

    在使用英寸作为绘图单位的英制 dxf 绘图中,以及以 72 dpi 保存的光栅图像中,比例因子将为 1/72 = .013888888

    在使用英寸作为绘图单位的英制 dxf 绘图中,以及以 96 dpi 保存的光栅图像中,比例因子将为 1/96 = .010416667

    然后在 AutoCAD 之类的程序中打开 dxf 文件时,光栅图像以上面显示的比例因子绘制,因此我们的第一个示例将以 width of image in pixels * scale factor in 11 的大小绘制,对于 100x100px 的图像,将为 35.2778 毫米。

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2012-06-25
      • 2013-09-12
      • 2017-01-23
      • 2014-09-21
      • 2016-06-01
      • 2015-01-13
      • 2015-08-16
      • 2010-11-25
      相关资源
      最近更新 更多