java画坐标_java-在JPanel上绘制近距离GPS坐标

本文介绍了如何为图形渲染生成具有多样性的XY坐标,而非使用随机点。首先找到数据列表中的边界框,即最小和最大X、Y坐标。然后,利用边界框定义的范围,将位置坐标转换为图形坐标,确保比例适中且不失真。通过计算X和Y坐标的缩放因子,并取两者中较小的一个来保持图像比例。最后,根据需要将图形坐标转换为整数,并考虑添加边距以避免图像紧贴绘图区域边缘。
摘要由CSDN通过智能技术生成

What can I do for an equation that will give me XY coordinates that have enough variety to make a decent graphic rendering instead of using random points?

找到边界框.换句话说,在列表中找到最小的x和y坐标.在列表中找到最大的x和最大y坐标.这两点定义了边界框.

现在,将这些位置x,y坐标转换为图形x,y坐标.您最小的位置x,y坐标变为绘图坐标0,0.您最大的位置x,y坐标变为绘图坐标的宽度,高度.

为了防止缩放使图像失真,我们必须首先计算x坐标和y坐标的缩放因子.

scaling factor x = drawing width / (location maximum x - location minimum x)

scaling factor y = drawing height / (location maximum y - location minimum y)

然后,我们使用两个比例因子中较小的一个.

scaling factor = Math.min(scaling factor x, scaling factor y)

将位置坐标转换为工程图坐标的公式为:

drawing x = location x * scaling factor

drawing y = location y * scaling factor

位置和比例因子是两倍,因此您不会降低任何精度.您必须将图形x和图形y转换为整数,以便可以绘制它们.

绘图x从西向东递增.位置x可能从西到东增加.

图y从北向南增加.如果位置y从南到北增加,则在进行转换时必须考虑到这一点.

drawing y = drawing height - drawing y

您可能会希望在绘图区域中添加边距,以便在绘图区域的边缘都不会绘制任何位置.

假设您要有10个像素的边距.这将使实际绘图区域的宽度增大20个像素,高度增大20个像素.

然后,在绘制位置之前,将10个像素添加到图形x和图形y.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值