java - 如何在 JavaFX 图表上画圆
问题描述
我开发了一个 JavaFX 应用程序,我正在努力解决这个问题:
我在散点图上绘制了一组点 (x, y),您可以在下图中看到它们显示为一个小灰点。
我想用最小的圆包围这些点,因此我有一个名为 minimumCircle 的函数,它接收点数组,并在使用Welzl 算法时返回最小的包围圆(半径 + 中心点)
Circle c = minimalCircle(points);
当我尝试绘制从函数中检索的圆时,会出现问题,我制作了一个包含 1 个点的系列,该点是圆的中心,并应用具有圆半径的圆形
private XYChart.Series<Number, Number> minimalCircleSeries(Point[] points) {
XYChart.Series series = new XYChart.Series();
Circle c = minimalCircle(points);
javafx.scene.shape.Circle pointCircle = new javafx.scene.shape.Circle(c.center.x, c.center.y, c.r);
XYChart.Data data = new XYChart.Data(c.center.x, c.center.y);
data.setNode(pointCircle);
series.getData().add(data);
return series;
}
不幸的是,当它绘制圆时,它以像素为单位引用半径大小,而实际上它假设是图形上的真实单位,这导致下图中的圆不是最小的封闭圆。
我正在尝试找到一种方法来转换半径比例,以便正确绘制圆或找到另一种在散点图上绘制圆的方法
非常感谢您的帮助 !
解决方案
推荐阅读
- wordpress - 模组重写 - .htaccess
- c++ - 在qt中填充列表视图后更改状态栏的颜色
- angular - Kendo UI angular - 在条形图中旋转 x 轴的标签
- node.js - socket.io 的动态主题
- python - yaxis 上的 HourLocator() 引发运行时错误意外超过 Locator.MAXTICK
- python - Xception input_shape 通道
- informatica - 电子邮件变量只允许在会话的上下文中
- reactjs - 在反应本机网格视图中添加项目单击事件
- r - 组间比较 Mann-Whitney 检验
- solr - Solr Cloud:如何将文档(pdf、office)元数据禁用为字段