如何将rendered position转换为model position?
示例:
var rpos = cy.pan();
var mpos = cy.toModelPosition(rpos); // Get top left corner position in model
据我所知,doc没有提及任何转换方法。我相信这会非常有用!
当然,我可以自己写点东西:
function toModelPosition(pos) {
return {
x: (pos.x - cy.pan().x) / cy.zoom(),
y: (pos.y - cy.pan().y) / cy.zoom(),
};
}
答案 0 :(得分:0)
您通常不需要转换它们,因为api中的函数允许您传递任何值。
答案 1 :(得分:0)
就像@maxkfranz一样,Cytoscape API的大多数功能都接受两种格式。
但是我需要自己转换。所以这就是我最终要做的:
// Convert a rendered position to a model position
cy.toModelPosition = (pos) => {
const pan = cy.pan();
const zoom = cy.zoom();
return {
x: (pos.x - pan.x) / zoom,
y: (pos.y - pan.y) / zoom,
};
};
// Convert a model position to a rendered position
cy.toRenderedPosition = (pos) => {
const pan = cy.pan();
const zoom = cy.zoom();
return {
x: pos.x * zoom + pan.x,
y: pos.y * zoom + pan.y,
};
};