gpt4 book ai didi

graphics - 打印和图形[]

转载 作者:行者123 更新时间:2023-12-02 19:48:42 25 4
gpt4 key购买 nike

我想画一个矩形(或更多),打印在纸上以厘米为单位显示矩形。所以

Graphics[{Rectangle[{0, 0}, {19, 28}], Orange, Rectangle[{0, 0}, {1, 1}]}]

将打印为两个矩形,其尺寸为 1 厘米 x 1 厘米(橙色矩形),黑色矩形为 19 x 28 厘米。

看来有些变量很重要:ImageSize,当然还有AspectRatio

我使用了AspectRatio->19/28ImageSize各种设置,例如ImageSize->{19*27,28*27} 但它一直不是很准确。

我将图形导出为 TIFF,然后使用 Windows 照片库打印为整页照片。有人对此有经验吗?必须有一个公式,而不是反复试验。

更新:我尝试了@Szabolcs的建议,并使用了以下代码:

   g = Graphics[{White, EdgeForm[Directive[Thick, Black]], 
Rectangle[{0, 0}, {18, 28}], Orange, Rectangle[{0, 0}, {10, 10}]}]

final = Show[g, AspectRatio -> Automatic,
PlotRange -> {{-0.5, 18.5}, {-0.5, 28.5}}]

cm = 72/2.54

Export["final.pdf", Show[final, ImageSize -> {19 cm, 29 cm}]]

这很好用。 10x10cm 的橙色矩形是精确测量的 10x10cm

cm 72/2.54 值不是我所期望的,因为我认为 Windows 使用 96dpi 和 Mac 72dpi(从 www 读取)。然而 72 是有效的值。我也一直在玩框架,但后来它变得丑陋。尽管尝试了所有可能的设置,但尚未找到获得正确结果的方法。应该起作用的是在选定的边界内自己创建框架/刻度等,但这不是我想要追求的路径..

最佳答案

g = Graphics[{Rectangle[{0, 0}, {19, 28}], Orange, Rectangle[{0, 0}, {1, 1}]}]

好的,您需要做的第一件事就是设置 xy 方向使用相同的单位,这意味着

Show[g, AspectRatio -> Automatic]

但这已经是默认值了。

您需要做的第二件事是选择绘图区域的大小和范围。让我们将其设置为 21 x 30,并将矩形居中:

plotArea = {{0, 21}, {0, 30}} - {1, 1}
Show[g, AspectRatio -> Automatic, PlotRange -> plotArea]

您需要做的第三件事是关闭添加任何使图形的实际尺寸大于绘图范围的填充/边距:

final = Show[g, AspectRatio -> Automatic, PlotRange -> plotArea, PlotRangePadding -> 0, ImagePadding -> 0]

我相信 ImageMargins 不会产生影响,但如果有影响,也将其设置为 0。

您需要做的最后一件事是将其导出为保留图像尺寸的可打印格式,并设置图像的大小,以便 1 厘米将成为绘图上的 1 个单位。 Mathematica 接受以打印机点为单位的图像尺寸,所以让我们定义一下:

cm = 72/2.54
Export["final.pdf", Show[final, ImageSize -> 21 cm]]

我们希望绘图宽度为 21 厘米,因为它有 21 个单位宽。使用 PDF 作为导出格式,而不是 TIFF。 ImageSize 需要在 Show 内部使用,以解决 Export 的一些问题...

现在在 Adob​​e Reader 中打开 PDF,打开打印对话框,并确保“页面缩放”设置为“无”!我不知道如何在其他阅读器中执行此操作...还要确保您的身材适合纸张(21 x 30 厘米对于 A4 来说太大了...)

我不会进行测试打印,所以请告诉我这是否适合您:-) 通过这种方式生成的 PDF 的大小正好是 21 x 30 厘米,所以如果出现问题,那一定会发生在打印阶段。

关于graphics - 打印和图形[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com