我想画一个矩形(或更多),印在纸上显示矩形,单位为厘米.所以
Graphics[{Rectangle[{0, 0}, {19, 28}], Orange, Rectangle[{0, 0}, {1, 1}]}]
Run Code Online (Sandbox Code Playgroud)
将打印为两个矩形,可以测量为1厘米x 1厘米(橙色一个),黑色矩形为19x28厘米.
似乎有些变量很重要:ImageSize
当然还有AspectRatio
.
我使用AspectRatio->19/28
和用于ImageSize
各种设置,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}]]
Run Code Online (Sandbox Code Playgroud)
这非常有效.10x10cm的橙色矩形是精确测量10x10cm
cm 72/2.54的值不是我预期的,因为我虽然Windows使用96dpi和Mac 72dpi(从www读取).然而,72是有效的价值.我也一直在玩框架,但后来变得丑陋.没有找到一种方法来获得正确的结果,以及所有可能的设置.应该在选定的边界内自己创建框架/刻度等,但这不是我想要追求的路径.
我想知道是否可以使用字符串可变列表的内容来创建新变量。
举个例子:
str={"cow","monkey"}
Run Code Online (Sandbox Code Playgroud)
这些字符串是从文件中提取的。现在,我想将这些字符串当作一个变量来引用。因此可以将变量Cow设置为{4,2,3}
或其他任何设置。当然,任何引用str[[1]]
都会给出字符串“ cow”。
有任何线索还是这是个坏主意?
当然,我可以在列表中添加信息,例如:
str={{"cow",{4,2,3}},{"monkey",{}}
Run Code Online (Sandbox Code Playgroud)
但是我仍然无法直接将Cow作为变量来处理。