Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SVG而非画布中将SVG多边形转换为三维多边形_Javascript_Svg - Fatal编程技术网

Javascript 在SVG而非画布中将SVG多边形转换为三维多边形

Javascript 在SVG而非画布中将SVG多边形转换为三维多边形,javascript,svg,Javascript,Svg,我有JSON数据来生成一些SVG(2D)多边形。我正在寻找一种在SVG中绘制三维多边形的方法。我发现很多库可以在画布中绘制3D路径和多边形,但我需要SVG作为DOM对象访问我的多边形。 为了更好地理解,我想要这样的东西,但我想要SVG中的输出: SVG从来都不是为3D而创建的,但是您可以通过让多个多边形代替多边形面来模拟3D: var Polygon=(函数(){ 函数多边形(直线、填充){ 如果(行===无效0){ 行=[]; } 如果(填充===void 0){ fill=“rgba(

我有JSON数据来生成一些SVG(2D)多边形。我正在寻找一种在SVG中绘制三维多边形的方法。我发现很多库可以在画布中绘制3D路径和多边形,但我需要SVG作为DOM对象访问我的多边形。 为了更好地理解,我想要这样的东西,但我想要SVG中的输出:


SVG从来都不是为3D而创建的,但是您可以通过让多个多边形代替多边形面来模拟3D:

var Polygon=(函数(){
函数多边形(直线、填充){
如果(行===无效0){
行=[];
}
如果(填充===void 0){
fill=“rgba(“+(Math.round(Math.random()*255))+”,“+(Math.round(Math.random()*255))+”,“+(Math.round(Math.random()*255))+”,0.15)”;
}
这条线=线;
this.fill=填充;
this.svgshape=document.createElements('http://www.w3.org/2000/svg","多边形";;
this.svgshape.style.stroke='black';
}
Polygon.prototype.render=函数(位置){
如果(位置===无效0){
职位={
x:0,,
y:0
};
}
this.svgshape.style.fill=this.fill;
var点=[];
对于(var lineIndex=0;lineIndex}, 1000 / 4);SVG从来不是为3D而创建的,但您可以通过让多个多边形代替多边形面来模拟3D:

var Polygon=(函数(){
函数多边形(直线、填充){
如果(行===无效0){
行=[];
}
如果(填充===void 0){
fill=“rgba(“+(Math.round(Math.random()*255))+”,“+(Math.round(Math.random()*255))+”,“+(Math.round(Math.random()*255))+”,0.15)”;
}
这条线=线;
this.fill=填充;
this.svgshape=document.createElements('http://www.w3.org/2000/svg","多边形";;
this.svgshape.style.stroke='black';
}
Polygon.prototype.render=函数(位置){
如果(位置===无效0){
职位={
x:0,,
y:0
};
}
this.svgshape.style.fill=this.fill;
var点=[];
对于(var lineIndex=0;lineIndex