VPython 7 纹理不从自定义目录加载

VPython 7 Texture not loading from custom directory

我正在 VPython 7; Python 3.6 进行一个小项目,其中需要将纹理应用于我的 3D 对象。但是,当我尝试加载纹理时,对象并没有出现,直到我将纹理放入 Lib\site packages\vpython\vpython_data 文件夹中,它在其中完美加载,没有任何问题。

However, for my project, I need it to be in my chosen directory for easy organisation.

让我们用我的纹理 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)

The above will not work.

我的问题是我是否加载错误,或者是否根本没有解决此问题的方法。

提前致谢

我不是很明白你对冒号的用法,但是有一个问题。我做了将图像放在 C:\cabinet.jpg 并执行

的实验

框(纹理='C:\cabinet.jpg')

此操作失败,如果您打开浏览器调试器,您将看到此错误消息:

不允许加载本地资源:file:///C:/cabinet.jpg

这与 CORS 问题、跨源资源共享有关。

另一方面,可以从 "CORS-enabled" 站点获取图像。这有效:

框(纹理='https://s3.amazonaws.com/glowscript/textures/flower_texture.jpg')

不过,感谢您报告此事,因为我想我可能会找到使本地文件正常工作的方法。

布鲁斯·舍伍德

P.S。最好 post VPython 问题到 VPython 论坛,那里的 VPython 用户比可能看到 Whosebug 问题的人多得多。

如果您在 Jupyter 笔记本中 运行 并且图像所在的目录是笔记本所在目录的子目录,那么它将起作用。例如,如果在与包含 Tex.jpg 文件的笔记本相同的目录中有一个图像目录,那么这将起作用。

self.3DObject= sphere(pos=vector(0,0,0),radius = 1, texture="images\Tex.jpg")