我正在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/

10-10 01:04