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.