Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 如何使用d3.js路径生成器绘制曲线和直线?_Javascript_Html_Svg_D3.js - Fatal编程技术网

Javascript 如何使用d3.js路径生成器绘制曲线和直线?

Javascript 如何使用d3.js路径生成器绘制曲线和直线?,javascript,html,svg,d3.js,Javascript,Html,Svg,D3.js,我试图用d3路径生成器绘制温度计形状,而不是用HTML硬编码。我已经能够使用d3路径生成器绘制直线或曲线,但我需要能够同时绘制这两种形状。下面是我用HTML硬编码的内容 <path d =" M 50,35 L 50,400 A 50 50, 0, 1, 0, 95 400 L 95,35 A 25 25, 0, 0, 0, 5

我试图用d3路径生成器绘制温度计形状,而不是用HTML硬编码。我已经能够使用d3路径生成器绘制直线或曲线,但我需要能够同时绘制这两种形状。下面是我用HTML硬编码的内容

<path d ="  M 50,35 
                    L 50,400
                    A 50 50, 0, 1, 0, 95 400
                    L 95,35
                    A 25 25, 0, 0, 0, 50 35" />

通过使用
scale()
应用
transform
,我可以让它工作


感谢Lars Kotthoff给出答案。

D3路径生成器不适合绘制特定类型的形状。那么,用D3绘制而不是在html中硬编码的最佳方法是什么?我看不出有任何理由不硬编码它。您还可以将
d
属性的值保留为变量,并根据需要应用。如果它是硬编码的,那么调整其大小的最佳方法是什么?硬编码不同的大小选项,并根据用户的输入将其插入?只需使用
scale(2)
或类似的方式应用
transform
if(size=="small")
     shape.attr('transform', "scale(.5)");
else if(size=="large")
     shape.attr('transform', "scale(2)");