gpt4 book ai didi

python - POV-RAY 代码转换为 Python 的 Vapory

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:12 25 4
gpt4 key购买 nike

在这里,我正在尝试将一些 POV-Ray 代码转换为 Python。我正在使用 VAPORY 模块。特别是,部分 scale <4/3,1,1>*1.75pigment{ color rgb<1,1,1>*1.1 }非常困惑。不知道如何添加 *1.75*1.1进入 Python 代码。

纯 POV 射线代码:

box { <-0.04,-0.04,0>,< 1.03, 1.04, 0.01>   
// 1st layer: White
texture{
pigment{ color rgb<1,1,1>*1.1 }
finish{ phong 1}
} // ------------------------------
// 2nd layer: image_map
texture{
pigment{
image_map{ jpeg "Image_gamma_0.jpg"
// maps an image on the xy plane from <0,0,0> to <1,1,0> (aspect ratio 1:1)
// accepted types: gif, tga, iff, ppm, pgm, png, jpeg, tiff, sys
map_type 0 // 0=planar, 1=spherical, 2=cylindrical, 5=torus
interpolate 2 // 0=none, 1=linear, 2=bilinear, 4=normalized distance
once //
} // end of image_map
} // end of pigment
} // end of texture

scale <4/3,1,1>*1.75
rotate< 0, 0,0>
translate<-1.5,0.1,-2>
} // end of box //

可变代码:

# box with layered textures
box = Box ([-0.04, -0.04, 0], [1.03, 1.04, 0.01],
# 1st layer: White
Texture(
Pigment('color', [0, 0, 1]),
Finish('phong', 1)
), # End of 1st layer ------------------------------
# 2nd layer: image_map
Texture(
Pigment(
ImageMap(
'jpeg',
'"Image_gamma_0.jpg"',
'gamma', 2.0,
'map_type', 0,
'interpolate', 2,
'once'
), # end of image_map
), # end of pigment
), # end of texture
'scale', [4/3, 1, 1],
'translate', [-1.5, 0.1, -2]
) # end of box # -----------------------

最佳答案

您可以使用 numpy 进行矢量运算:
一个 python 列表 [] 对应于 POV-Ray 向量 <
numpy 数组支持你想要的标量乘法 (*x )

  1. 从列表中创建一个 numpy 数组
  2. 乘法数组
  3. 将数组转换为列表

像这样:

import numpy as np
print(list(np.array([1,2,3])*2.5))

result: [2.5, 5.0, 7.5]

关于python - POV-RAY 代码转换为 Python 的 Vapory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51197550/

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