2015-06-22 3 views
0

Я работаю над проблемой, которую я испытываю, когда размер кисти относительно невелик.Размещение групп кистей размером d3

В настоящее время группы, созданные в кисти (g.resize [n, s, e, w и т. Д.]), Помещаются некоторым внутренним действием в кисть d3.

<g class="resize n" transform="translate(111.77999877929688,120.05999755859375)" style="cursor: ns-resize;"> 
    <rect y="0" width="68.94" height="6" x="0" style="visibility: hidden;"> 
    </rect> 
</g> 

Моя проблема заключается в том, что для горизонтальных сторон (север и юг), группа ставится под краем степени, и для вертикальных сторон (восток и запад) группа ставится справа от края , Группа использует преобразование, чтобы поместить себя в svg. Это означает, что моя ручка изменения размера находится внутри области для северного и западного краев. Поэтому в небольших масштабах действие изменения размера влияет на действие щелчка, которое я хочу выполнить по мере. Я хотел бы выяснить, как убедиться, что группы изменения размера всегда рисуются снаружи.

Я бы предпочел не добавлять корректировку конца кисти (возможно, также при перемещении кисти), чтобы переместить группы и настроить ее преобразование. Есть ли способ внутри собственного кода d3 контролировать, как они размещаются?

Также, как я могу контролировать высоту этого прямоугольника, чтобы быть чем-то иным, чем 6?

ответ

0

Предполагая, что-то вроде этого:

var brushg = svg.append("g").attr("class", "brush"); 
var brush = d3.svg.brush(); 
brushg.call(this.brush); 

Вот что вы можете сделать, когда кисть оказывается:

brushg.selectAll('.resize') 
     .select('rect') 
     .attr('height', '100'); 

Который изменяет высоту масштабировании элементов.

+0

С тех пор как я посмотрел на эту проблему. Мы так и не решили. Но из того, что я помню, мы не хотели, чтобы экспликация контролировала размер прямоугольников с размерами, которые уже находились под управлением d3. Спасибо за продолжение. – Marc