svg - угол не острый, как ожидалось

Когда я пытаюсь нарисовать фигуру с помощью SVG, углы выглядят не острыми, как ожидалось. Правый угол выглядит потрясающе, но два других не выглядят острыми.

Я использую d3.js, чтобы нарисовать его:

var width = 600
  var height = 600
  var svg = d3.select('body')
  .append('svg')
  .attr('width',width)
  .attr('height',height)
  //.style('border','1px solid red')
  .attr('viewBox',`0 0 15 15`)

  var g = svg.append('g')
  .attr('fill','none')
  .attr('stroke', 'red')
  .attr('stroke-width',1)
  
  var path = ['M',10,6,2,2,5,6,2,10,'z'].join(' ')
   g.append('path')
    .attr('d', path)
    .attr('stroke', 'red')
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js"></script>

Свободный перевод вопроса svg - corner not sharp as expected от участника @lucky1928.


Ответы (1 шт):

Автор решения: Alexandr_TT

Этим управляет свойство stroke-miterlimit. Его значение по умолчанию - 4, но вы можете использовать большее значение, если это соответствует тому, что вы хотите.

var width = 600
  var height = 600
  var svg = d3.select('body')
  .append('svg')
  .attr('width',width)
  .attr('height',height)
  //.style('border','1px solid red')
  .attr('viewBox',`0 0 15 15`)

  var g = svg.append('g')
  .attr('fill','none')
  .attr('stroke', 'red')
  .attr('stroke-width',1)
  
  var path = ['M',10,6,2,2,5,6,2,10,'z'].join(' ')
   g.append('path')
    .attr('d', path)
    .attr('stroke-miterlimit', 10)
    .attr('stroke', 'red')
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js"></script>

Свободный перевод ответа от участника @Robert Longson.

→ Ссылка