2013-09-12 7 views
0

Я создаю маркер на моей оси, направленной против силы. в моей направленной по оси диаграмме у меня есть линии или звенья разной толщины или удара. из-за этого маркеры создаются с разными размерами. я хочу иметь одинаковый размер маркера. вот мой код для маркеров:размер маркера равномерный в d3

`svg.append('defs').append('svg:marker') 
    .classed("arrowhead",true) 
    .attr('id', 'arrowhead')    
    .attr('viewBox', '0 -5 40 40') 
    .attr('refX', "25") 
    .attr('markerWidth', 8) 
    .attr('markerHeight', 8) 
    .attr('orient', 'auto') 
    .append('svg:path') 
    .attr('d', 'M0,-5L10,0L0,5') 
    .attr('fill', 'black');` 

как я могу иметь маркер с однородным размером ?? заранее спасибо ..

+0

Вы пробовали установить ширину хода по определению маркера? –

+0

В каком смысле это не форма? В вашем примере есть только один путь, так как он может быть другим, нет ничего, что могло бы отличаться от него. –

+0

Возможный дубликат [Как предотвратить маркировку SVG (стрелка) для наследования ширины штриха пути?] (Http://stackoverflow.com/questions/13626748/how-to-prevent-a-svg-marker-arrow-head -to-inherit-paths-stroke-width) – VividD

ответ

1

По умолчанию маркеров являются относительно хода ширины (см spec), но вы можете установить markerUnits="userSpaceOnUse" на элементе маркеров, чтобы размер маркеров не может быть относительно хода ширины.

Чтобы уточнить, это не делает размер маркера статическим и одинаковым для всех элементов, используя маркер. Отображаемый маркер все еще подвергается преобразованию, установленному на элементах, которые используют маркер. Но это делает размер не зависящим от ширины штриха.

+0

Как вы реализовали markerUnits = "userSpaceOnUse" в определении маркера. Я новичок в d3, мне тоже нужно применить его для моего маркера. я применил таким образом: svg.append ('') DEFS добавить. (': Маркер SVG') .classed ("наконечник стрелы", правда) \t \t \t \t \t \t \t .attr ('ID' , 'Arrowhead') \t \t \t \t \t \t \t .attr ('Viewbox', '0 -5 40 40') \t \t \t \t \t \t \t .attr ('REFx', "26") \t \t \t \t \t \t \t .attr ('markerWidth', 8) \t \t \t \t \t \t \t .attr ('markerHeight', 8) \t \t \t \t \t \t \t .attr ('Orient', 'авто') .append ('SVG: путь') .attr ('d', 'М0, -5L10,0L0,5') \t \t \t \t .attr ('заливки', 'черный') \t \t \t \t .attr ('markerUnits », 'UserSpaceOnUse'); Но это работает для меня – user2455757

Смежные вопросы