如何在列表中的PointF之间画一条线

时间:2019-01-29 10:25:11

标签: c# list canvas xamarin.android

我刚开始使用适用于Android的xamarin。我正在构建一个应用程序,使人们可以在地图上看到他们行走的轨迹。该地图是用位图手写的(这是一项学校作业,因此是必需的)。我需要保存点(在列表中所做的)并在点之间绘制点和线以创建轨道。

问题是我有一个foreach方法来绘制所有点,我只需要在点之间绘制线即可。我不知道如何确保我拥有先前点和新点的注册表,因此无法将坐标放入drawLine方法中。

轨迹是一个列表,它将当前GPS位置添加到列表中。由于我在地图上使用位图,因此我需要自己实现地图的哪些坐标与实际区域的坐标相对应。这就是比例所指的。

        paint.Color = Color.Magenta;
        PointF previousPoint;
        foreach (PointF p in track)
        {
            Console.WriteLine("works");
            // p is a track-point in RD-meters
            // calculates distance to centre bitmap
            float bpx = (p.X - centrePos.X) * 0.4f;
            float bpy = (centrePos.Y - p.Y) * 0.4f;
            // converter to screen pixels
            float sx = bpx * this.Proportion;
            float sy = bpy * this.Proportion;
            // calculate to absolute scherm-pixels
            float x = this.Width / 2 + sx;
            float y = this.Height / 2 + sy;
            canvas.DrawCircle(x, y, 10, paint);

            previousPoint = p;

            //draws the lines between the points
            canvas.DrawLine(previousPoint.X, previousPoint.Y, x, y, verf);
        }

所以现在previousPoint和p相同,应该更像p1和p2,但是计算出的代码与代码中描述的中心相同。

0 个答案:

没有答案