У меня есть макет пакета, в котором некоторые объекты имеют нулевое значение. Я пытаюсь найти способ установить радиус по умолчанию для них. Согласно документу, я надеялся, что я мог бы написать что-то вроде этогоМинимальный радиус компоновки пакета окружности
pack.radius(function(r){
return r==0 ? MIN_RADIUS : oldRadiusFunction(r);
});
Но не имел никакого успеха до сих пор в определении того, как получить доступ к «oldRadiusFunction».
Ближайший я пришел к решению это, выполнив:
pack.radius(function(r){
return r== 0 ? MIN_RADIUS : p.radius(null)(r);
});
var p = this.pack;
... для того, чтобы получить доступ к this.pack из функции. Кажется, что это изначально работает хорошо, но начинает приносить странные результаты, когда я начинаю обновлять диаграмму.
В любом случае, любая помощь будет очень признательна, спасибо за ваше внимание и внимание!
Редактировать: Вот то, что документы говорят
pack.radius ([радиус])
Если задан радиус, задает функцию радиуса для вычисления радиуса каждого узла. Если радиус равен нулю, по умолчанию он определяется автоматически из значения узла, масштабированного в соответствии с размером макета. Если радиус не указан, возвращается текущая функция радиуса, которая по умолчанию равна нулю. Радиус также может быть задан как постоянное число для равномерного размера круга.
Моя цель (может быть немного наивна) - передать функцию, которая возвращает MIN_RADIUS при передаче 0 в качестве аргумента или возвращает то, что по умолчанию будет возвращено для других значений.
Здесь вы должны указать нам больше контекста. Что такое 'oldRadiusFunction' и где оно определено? Как вы получаете «странные» результаты? –
Я не знаю, что такое 'oldRadiusFunction', это именно то, что я ищу:) ...И я получаю странные результаты, как только я начинаю обновлять значения объектов. –
Не могли бы вы привести полный пример? Я не могу сказать вам, какова должна быть ваша функция радиуса, не имея представления о том, что вы пытаетесь сделать. –