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")
我正在 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")