2014-12-16 11 views
2

У меня есть массив JSON данные, как это:Диаграмма Scatter в аналоговых часах

var data=[ 
{"someProperty":"number","time":"2014-12-11T09:24:39.000Z"}, 
{"someProperty":"number","time":"2014-12-11T09:27:39.000Z"}, 
{"someProperty":"number","time":"2014-12-11T09:30:39.000Z"}, ..... 
] 

мне нужно нарисовать круг для каждого из них в массиве (с радиусом «SomeProperty») и положите их в аналоговый часы по времени. я нашел картину, сходную с моей проблеме здесь:.

enter image description here

но без кода :(

Я использую d3.js для этого мне удалось сделать это с помощью поворота, но затем все круги, где по периметру и пересекаются друг с другом Я хочу поместить их поперек радиуса во избежание столкновения. Я вижу некоторые примеры обнаружения столкновения, такие как http://bl.ocks.org/mbostock/1747543 , но я не вижу там никакой возможности управлять x , y позиция, как я хочу.

+0

Посмотрите на эту страницу. Я думаю, что это то, что тебе нужно. http://bl.ocks.org/sathomas/1ca23ee9588580d768aa –

+0

Если вы не хотите перетаскивать их самостоятельно, вы должны сами позиционировать их самостоятельно, а не использовать дорогостоящие библиотеки cpu для поворота и обнаружения конфликтов и т. д. Не совсем понятно, что вы хотите. Если их нужно перетаскивать и т. Д.? Если нет, возможно, вам стоит прочитать что-то о базовой геометрии, вместо того, чтобы пытаться использовать такие тяжелые библиотеки. –

ответ

0

Если я правильно прочитал вопрос, «someProperty» предоставит значение радиуса, а «время» предоставит угол.

Я хотел бы предложить преобразуя эти точки привязки к полярным coordnates, как описано здесь: d3.js Plot elements using polar coordinates

Theta будет угол преобразован из «времени». r будет «someProperty»

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