如何考虑屏幕的矩形形状以确保圆圈精确地绘制到填充边界?
以下适用于“圆形”区域,但不适用于矩形区域......
dx = abs(center.x - place.x);
dy = abs(center.y - place.y);
dh = Math.sqrt((dx * dx) + (dy * dy));
radius = dh - padding;
Halo Design:
如果问题看起来不明显,下面的图像代表了我正在使用的当前方法。取决于地点的位置影响它伸入屏幕空间的距离。
答案 0 :(得分:5)
我认为这应该有效。没有测试过。
dx = abs(placeLocationPixels.x - ourLocationPixels.x)
dy = abs(placeLocationPixels.y - ourLocationPixels.y)
ox = dx - ((screenSize.x / 2) - padding);
oy = dy - ((screenSize.y / 2) - padding);
if (ox < 0) ox = 0;
if (oy < 0) oy = 0;
radius = sqrt((ox*ox) + (oy*oy));
编辑:这不是任何特定的语言。
答案 1 :(得分:0)
我不确定但也许您可以计算凸包,然后将其限定为矩形,然后您将获得地图的比例以确保每个圆都显示在屏幕上。
此处:您可以找到有关凸包的信息:http://en.wikipedia.org/wiki/Convex_hull