我正在VPython 7; Python 3.6
中的一个小项目中,需要将纹理应用于我的3D对象。但是,当我尝试加载纹理时,直到将纹理放在Lib\site packages\vpython\vpython_data
文件夹中为止,该对象才会出现,该文件夹可以完美地加载而没有问题。
但是,对于我的项目,我需要将其放在我选择的目录中以便于组织。
让我们用纹理Tex C:\Project
来命名目录/Tex.jpg
textures.customTex= {'file':":Tex.jpg"}self.3DObject= sphere(pos=vector(0,0,0),radius = 1, texture=textures.Tex)
如果纹理是/vpython_data
目录,则以上内容将起作用。
但是,当我尝试在目录中加载相同的纹理时:textures.customTex= {'file':":C:\Project\Tex.jpg"}self.3DObject= sphere(pos=vector(0,0,0),radius = 1, texture=textures.Tex)
上面的方法不起作用。
我的问题是是否将我加载错误,或者是否根本没有解决此问题的方法。
先感谢您
最佳答案
我不太了解您对冒号的使用,但是有一个问题。我做了将图片放在C:\ cabinet.jpg并执行的实验
框(texture ='C:\ cabinet.jpg')
这将失败,并且如果您打开浏览器调试器,则会看到以下错误消息:
不允许加载本地资源:file:/// C:/cabinet.jpg
这与CORS问题,跨域资源共享有关。
另一方面,可以从“启用了CORS”的站点获取图像。这有效:
框(texture ='https://s3.amazonaws.com/glowscript/textures/flower_texture.jpg')
不过,感谢您报告此问题,因为我认为我可能会看到一种使本地文件正常工作的方法。
布鲁斯·舍伍德
附言最好将VPython问题发布到VPython论坛,在该论坛中,VPython用户的数量比可能看到堆栈溢出问题的用户多。
关于python - VPython 7纹理未从自定义目录加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47022486/