gpt4 book ai didi

python - 将 ISO A 系列纸张尺寸转换为 C 系列(信封)的公式

转载 作者:行者123 更新时间:2023-11-30 23:52:01 26 4
gpt4 key购买 nike

基于Wikipedia article ,到目前为止我能想到的最好的就是这个,它适用于 9/11 尺寸:

A_SERIES = [
[841, 1189],
[594, 841],
[420, 594],
[297, 420],
[210, 297],
[148, 210],
[105, 148],
[74, 105],
[52, 74],
[37, 52],
[26, 37]]

C_SERIES = [
[917, 1297],
[648, 917],
[458, 648],
[324, 458],
[229, 324],
[162, 229],
[114, 162],
[81, 114],
[57, 81],
[40, 57],
[28, 40]]

def a_to_c(dimension):
return dimension * pow(2, 1.0 / 8)

def main():
for a_values, c_values in zip(A_SERIES, C_SERIES):
a_to_c_values = [
int(round(a_to_c(a_values[0]))),
int(round(a_to_c(a_values[1])))]
if a_to_c_values != c_values:
print str([a_to_c(a_values[0]), a_to_c(a_values[1])]) + ' != ' + str(c_values)

if __name__ == '__main__':
main()

$ ./an-to-cn.py
[161.39514443445813, 229.00662385970412] != [162, 229]
[114.50331192985206, 161.39514443445813] != [114, 162]
[80.69757221722907, 114.50331192985206] != [81, 114]

编辑:到目前为止,答案很好,这清楚地表明基于任意宽度和高度(这是该项目的目标)计算 C 尺寸并不是可能的。我将只使用 2^(1/8) 因子而不进行四舍五入,以尽可能接近事物的想法。生成的 OpenSCAD code :

outer_width = paper_width * pow(2, 1.0 / 8);
outer_height = paper_height * pow(2, 1.0 / 8);

最佳答案

我真的不知道他们是如何得出这个公式的,但我想说这是错误的。

它的开发方式和开发方式是有原因的。

A 的比率为 1:sqrt(2)。所以当你把一侧切一半时,你就会得到下一个较小的一侧。(一开始有 1 m^2 - 这就是为什么当你得到以 g/m^2 为单位的重量时很容易计算重量)。

B 是 A 和 A 大一号的几何平均值。

C 是 B 和 A 的几何平均值。

所以对于 C 你有:

 h_B = sqrt (h_A * h_(A+1)) = sqrt (h_a * h_a * sqrt(2)) = h_a * sqrt(sqrt (2))

h_C = sqrt (h_A * h_B)
= sqrt (h_A) * sqrt (h_A * sqrt(sqrt(2)))
= sqrt (h_A) * sqrt (h_A) * sqrt(sqrt(sqrt(2)))
= h_A * sqrt(sqrt(sqrt(2)))

问题是您不能使用最终的短公式,因为 h_A 大小之间的舍入会丢失。

问题是 h_A * sqrt(2) (h_ 表示高度),因为这不会使纸张的尺寸大一个数字。相反,除以 sqrt(2) 即可得到下一个较小的尺寸。

210/sqrt(2) = 148,49 四舍五入为 148但另一方面 148 * sqrt(2) ist 209,03。所以你真的必须计算

 h_B = sqrt(h_A * h_A(+1))
h_C = sqrt(h_A * h_B).

因此,您要么需要另外将 A 尺寸放大一倍,要么将 A 的 C 值计算得小一号,因为您可以从较大的 A 值中计算出较小的 A 值。

关于python - 将 ISO A 系列纸张尺寸转换为 C 系列(信封)的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480724/

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