Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >How to load SVG file into SVGRenderer in three.js

How to load SVG file into SVGRenderer in three.js

作者头像
周星星9527
发布于 2021-11-15 05:04:45
发布于 2021-11-15 05:04:45
5.8K01
代码可运行
举报
运行总次数:1
代码可运行

原文:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://stackoverflow.com/questions/33140342/how-to-load-svg-file-into-svgrenderer-in-three-js

I'm trying to use SVGRenderer in three.js (http://threejs.org/examples/#svg_sandbox). The example shows you how to make an SVG element (a circle) on the fly. I want to import an SVG file that I already have in my computer. How would I do that?

The createElementNS command doesn't seem to support importing SVG files?

I essentially want my image.svg to be displayed on a three.js scene.

You can use the THREE.SVGLoader() Library to achieve it :

核心代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scene = new THREE.Scene();
  scene.add(svgObject);

  var ambient = new THREE.AmbientLight(0x80ffff);
  scene.add(ambient);
  var directional = new THREE.DirectionalLight(0xffff00);
  directional.position.set(-1, 0.5, 0);
  scene.add(directional);
  renderer = new THREE.SVGRenderer();
  renderer.setClearColor(0xf0f0f0);
  renderer.setSize(window.innerWidth, window.innerHeight - 5);
  document.body.appendChild(renderer.domElement);

  window.addEventListener('resize', onWindowResize, false);
}

function onWindowResize() {
  camera.aspect = window.innerWidth / window.innerHeight;
  camera.updateProjectionMatrix();
  renderer.setSize(window.innerWidth, window.innerHeight);
}

function animate() {
  requestAnimationFrame(animate);
  render();
}

function render() {
  var time = Date.now() * 0.0002;
  camera.position.x = Math.sin(time) * 200;
  camera.position.z = Math.cos(time) * 200;
  camera.lookAt(scene.position);
  renderer.render(scene, camera);
}

CSS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* {
  margin: 0
}

依赖文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/renderers/SVGRenderer.js"></script>
<script src="http://threejs.org/examples/js/renderers/Projector.js"></script>
<script src="http://threejs.org/examples/js/loaders/SVGLoader.js"></script>
<script>
  /**
   * @name LegacySVGLoader
   * @author mrdoob / http://mrdoob.com/
   * @author zz85 / http://joshuakoo.com/
   * @see https://github.com/mrdoob/three.js/issues/14387
   */

  THREE.LegacySVGLoader = function(manager) {

    this.manager = (manager !== undefined) ? manager : THREE.DefaultLoadingManager;

  };

  THREE.LegacySVGLoader.prototype = {

    constructor: THREE.LegacySVGLoader,

    load: function(url, onLoad, onProgress, onError) {

      var scope = this;

      var parser = new DOMParser();

      var loader = new THREE.FileLoader(scope.manager);
      loader.load(url, function(svgString) {

        var doc = parser.parseFromString(svgString, 'image/svg+xml'); // application/xml

        onLoad(doc.documentElement);

      }, onProgress, onError);

    }

  };
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 传输过程数值模拟学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速搭建团队的GitLab
研发效能的其实端是代码仓的管理和统一维护,通过统一的私有化的Git托管服务实现代码的内部有限共享。代码仓在研发效能的提升中占据很重要的地位,这是DevOps工具链的起始点也是工程效能提升的一个重要环节。如果没有统一代码仓库我们也无法开始研发效能、质量效能、交付效能的衡量和提高。那么下面我们就开始讲解GitLab私有化仓库平台的搭建
Criss@陈磊
2019/09/25
7570
快速搭建团队的GitLab
Ubuntu离线安装软件包
a.当我们需要在多台电脑安装同一个软件,并且这个软件很大,下载需要很长时间时 b.需要安装软件的ubuntu不能上网
py3study
2020/01/20
5.6K0
ubuntu16.04安装qt5_qt安装哪些组件
Qt是一个跨平台的C++图形用户界面库,我们平时所说所使用的Qt,准确的来说是它的GUI编程部分。Qt提供给应用程序开发者建立图形用户界面所需要的功能,并且Qt很容易扩展。基本上,Qt和X Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCl以及ATl是相同类型的东西。
全栈程序员站长
2022/11/04
1.4K0
ubuntu16.04安装qt5_qt安装哪些组件
更新Ubuntu软件源
原有的软件源的存储路径是/etc/apt/sources.list,文件内容如下。
全栈程序员站长
2022/09/15
1.5K0
更新Ubuntu软件源
rancher下的kubernetes之一:构建标准化vmware镜像
本文介绍了如何通过rancher部署kubernetes集群,包括创建vmware虚拟机、配置网络、安装和配置rancher、部署kubernetes等步骤。同时,还介绍了如何备份和恢复标准化的镜像文件,以便于快速部署和迁移。
程序员欣宸
2018/01/04
1.9K0
rancher下的kubernetes之一:构建标准化vmware镜像
docker ssh秘钥免密登录
有一台跳板机,已经实现了免密登录后端服务器。但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器。
py3study
2020/04/22
2.4K0
[ 利器篇 ] - Microsoft Surface Pro 系列安装 Ubuntu 16.04 系统
Microsoft Surface Pro 系列一直是平板+PC中的强者,刷新了针对PC的看法。这次由于项目的需求搭建测试环境,需要使用Ubuntu 16.04 系统,在Surface Pro 7 安装Ubuntu 16.04 进行开发体验。
程序手艺人
2020/09/15
3.9K0
[ 利器篇 ] -  Microsoft Surface Pro 系列安装 Ubuntu 16.04 系统
Ubuntu 16.04 几个国内更新源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
用户8710806
2021/06/09
2.8K0
Ubuntu16.04安装及简单配置
sudo cp /etc/apt/sources.list  /etc/apt/sources.list.backup
foochane
2019/05/23
6630
Ubuntu16.04安装及简单配置
docker 运行Django项目
已经写好了一个Django项目,需要将这个项目用docker封装一个镜像,使用k8s发布!
py3study
2020/02/24
1.3K0
Ubuntu16安装Nvidia驱动(GTX1060显卡)
本篇概览 台式机是2018年购买的惠普暗隐精灵3代,显卡GTX1060,本文记录了此机器安装Ubuntu 16.04.7 LTS,再安装Nvidia驱动的过程; 另外还有一些避坑的小结,如果您遇到了类似问题可以拿来参考; 纯净Ubuntu系统 先安装Ubuntu16 LTS桌面版 U盘安装,我这里是惠普台式机,启动时出现惠普LOGO的时候,多次点击F10,进入bios,启动顺序选择U盘启动,然后在页面指导下顺利安装Ubuntu系统 需要注意的地方 网上很多安装文档中提到了要在BIOS设置中关闭secure
程序员欣宸
2021/12/07
9080
Ubuntu16安装Nvidia驱动(GTX1060显卡)
WIN10下创建Ubuntu18.04子系统及安装图形界面
控制面板——>程序——>程序和功能——>启用或关闭Windows功能——>适用于Linux的Windows子系统——>确定 (然后重启)
好派笔记
2021/09/17
3.1K0
ubuntu 14.04 16.04 18.04使用阿里源
版权声明:本博客上原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。 https://blog.csdn.net/bin_zhang1/article/details/81008645
用户1148525
2019/05/27
2.5K0
ubuntu16.04国内apt源以及官方源
替换写在/etc/apt目录的source.list文件 腾讯云 deb http://mirrors.tencentyun.com/ubuntu/ xenial main restricted un
禹都一只猫olei
2018/05/25
12.3K1
ubuntu 使用总结
清华源: https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
努力在北京混出人样
2019/02/18
7520
更换Ubuntu源为国内源的操作记录
我们都知道,Ubuntu的官方源对于国内用户来说是比较慢的,可以将它的源换成国内的源(比如阿里源),这样用起来就很快了。下面记录下更换操作: 首先了解下/etc/apt/sources.list.d文件 文件/etc/apt/sources.list是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址。 和sources.list功能一样的是/etc/apt/sources.list.d/*.list(*代表一个文件名,只能由字母、数字、下划线、英文句号组成), 该文件夹下的文件是第三方软
洗尽了浮华
2018/01/23
2.5K0
ubuntu的源
更换源的位置 /etc/apt/source.list 阿里云 # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb http://mirr
青木
2018/05/28
1K0
Ubuntu16桌面版编译和安装OpenCV4
本篇概览 这是一篇笔记,记录了纯净的Ubuntu16桌面版电脑上编译、安装、使用OpenCV4的全部过程,总的来说分为以下几部分: 安装必要软件,如cmake 下载OpenCV源码,包括opencv和opencv_contrib,并且解压、摆好位置 运行cmake-gui,在图形化页面上配置编译项 编译、安装 配置环境 验证 环境 环境信息如下: 操作系统:Ubuntu16.04桌面版 OpenCV:4.1.1 注意:本文全程使用非root账号操作 废话少说,直接在新装的Ubuntu16桌面版开始操作 换源
程序员欣宸
2021/12/07
9410
Ubuntu16桌面版编译和安装OpenCV4
ubuntu16.04 显卡驱动与cuda安装
摘要总结:本文主要介绍了在Ubuntu 16.04上配置Nvidia显卡驱动的方法,包括安装前的准备、下载驱动、安装驱动和配置环境。同时,还介绍了如何安装CUDA和Cudnn,以及如何在Ubuntu 16.04上安装Bazel构建C++项目。
ke1th
2018/01/02
2.4K0
ubuntu系统搭建饥荒服务器出现libcurl-gnutls.so.4: cannot open shared object file: No such file or directory怎么办
原因:饥荒是单核32位软件,只要使用64位的linux系统(常用ubuntu16.04和centos搭建),就需要安装一些32位的运行库软件
用户6948990
2025/04/03
1660
相关推荐
快速搭建团队的GitLab
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验