image - DXF图像实体组码解释

标签 image cad dxf

我正在使用 Delphi 类从 DXF 文件导入/导出某种实体。 我想添加对图像实体的支持,但我不理解某些组代码。

我正在使用官方 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 将它用于缩放和旋转,但我不明白如何。

谢谢

最佳答案

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

组代码 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 的比例因子插入的图像,将具有 112131 组代码 0.25,0.25,0 分别。这是一个奇偶数,但这就是数学计算的方式。

比例因子是半径为 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

当 dxf 文件随后在 AutoCAD 等程序中打开时,光栅图像以上面显示的比例因子绘制,因此我们的第一个示例将以 图像宽度(以像素为单位)* 比例因子的大小绘制在 11 中,对于 100x100 像素的图像,将是 35.2778 毫米。

关于image - DXF图像实体组码解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20521807/

相关文章:

python - 如何在 python 中从 CAD 文件创建非结构化 2D 网格

python-3.x - 如何使用ezdxf返回 'MTEXT'内的字符串?

opencv - 使用端点和凸出距离绘制圆弧。在 OpenCV 或 PIL 中

java - 是否可以在 jTextEditor 中将 Image 对象显示为 HTML 标记?

image - 如何从R中的三个矩阵创建RGB图像?

java - 在输出流中写入 imageicon

python - 从 OpenCascade 表面获取 (t, c, k) 值

c# - 写入 dxf 或 dwg 格式?

jquery - 如何在其背景加载 jQuery 时淡入 div