用一个 latlon 点和到该点的距离值绘制一个椭圆
Draw an ellipse with one latlon point and a distance value from that point
我想围绕一个点画一个椭圆,为此我正在创建一个矩形并在其中绘制椭圆。
对于矩形,我需要点、宽度和高度。我有重点,但没有宽度和高度。我唯一拥有的就是与该点的距离。我想用那个距离计算矩形的宽度和高度?
从该点到它周围任意方向的距离为 2 公里。
Rectangle rec = new Rectangle(Convert.ToInt32(cx), Convert.ToInt32(cy), width, height);
gr.DrawEllipse(Pens.Red, rec);gr.FillEllipse(Brushes.Red, rec);
我就是这样做的,
private static ENCX.S57Draw _draw;
Savedrfpt.Lat = Convert.ToDouble(24.34567);
Savedrfpt.Lon = Convert.ToDouble(54.32456);
ENCX.PixelPoint Saved_rfpixpts = _draw.GeoPix.Point(Savedrfpt);
double Distance_meters = Convert.ToDouble(2) * 1000;
double pixelpermeters = getPixelSizeInMeters();
Double d = Distance_meters / pixelpermeters;
gr.DrawEllipse(greenPen, (float)Saved_rfpixpts.X - (float)d, (float)Saved_rfpixpts.Y - (float)d, (float)d + (float)d, (float)d + (float)d);
gr.FillEllipse(brush, (float)Saved_rfpixpts.X - (float)d, (float)Saved_rfpixpts.Y - (float)d, (float)d + (float)d, (float)d + (float)d);
public double getPixelSizeInMeters()
{
double sizem = _draw.PixelSizeMetres;
double disscale = _draw.GeoPix.DisplayScale;
return _draw.PixelSizeMetres * _draw.GeoPix.DisplayScale;
}
谢谢,
我想围绕一个点画一个椭圆,为此我正在创建一个矩形并在其中绘制椭圆。
对于矩形,我需要点、宽度和高度。我有重点,但没有宽度和高度。我唯一拥有的就是与该点的距离。我想用那个距离计算矩形的宽度和高度?
从该点到它周围任意方向的距离为 2 公里。
Rectangle rec = new Rectangle(Convert.ToInt32(cx), Convert.ToInt32(cy), width, height);
gr.DrawEllipse(Pens.Red, rec);gr.FillEllipse(Brushes.Red, rec);
我就是这样做的,
private static ENCX.S57Draw _draw;
Savedrfpt.Lat = Convert.ToDouble(24.34567);
Savedrfpt.Lon = Convert.ToDouble(54.32456);
ENCX.PixelPoint Saved_rfpixpts = _draw.GeoPix.Point(Savedrfpt);
double Distance_meters = Convert.ToDouble(2) * 1000;
double pixelpermeters = getPixelSizeInMeters();
Double d = Distance_meters / pixelpermeters;
gr.DrawEllipse(greenPen, (float)Saved_rfpixpts.X - (float)d, (float)Saved_rfpixpts.Y - (float)d, (float)d + (float)d, (float)d + (float)d);
gr.FillEllipse(brush, (float)Saved_rfpixpts.X - (float)d, (float)Saved_rfpixpts.Y - (float)d, (float)d + (float)d, (float)d + (float)d);
public double getPixelSizeInMeters()
{
double sizem = _draw.PixelSizeMetres;
double disscale = _draw.GeoPix.DisplayScale;
return _draw.PixelSizeMetres * _draw.GeoPix.DisplayScale;
}
谢谢,