用C#得到已经用path绘制好的曲线上的所有点
时间: 2024-02-01 21:14:46 浏览: 46
可以使用 `GraphicsPath` 类的 `PathPoints` 属性来获取已经用 `GraphicsPath` 绘制好的曲线上的所有点。具体代码如下:
```csharp
// 创建一个 GraphicsPath 对象
GraphicsPath path = new GraphicsPath();
// 在 GraphicsPath 对象上添加绘制命令
path.AddLine(10, 10, 100, 100);
path.AddBezier(100, 100, 200, 0, 300, 200, 400, 100);
// 获取所有点
PointF[] points = path.PathPoints;
// 遍历所有点
foreach (PointF point in points)
{
Console.WriteLine($"({point.X}, {point.Y})");
}
```
上述代码先创建了一个 `GraphicsPath` 对象,并在其上添加了两个绘制命令,即直线和贝塞尔曲线。然后通过 `PathPoints` 属性获取了所有点,并使用循环遍历了所有点并输出了其坐标。
相关问题
C#在高德地图上绘制线
在C#中使用高德地图绘制线需要以下步骤:
1. 引入高德地图JavaScript API
在你的HTML页面中添加以下代码引入高德地图JavaScript API:
```
<script src="https://webapi.amap.com/maps?v=1.4.15&key=yourkey"></script>
```
其中,`yourkey`需要替换成你在高德地图开放平台上申请的API Key。
2. 创建地图容器
在HTML页面中添加一个 `<div>` 元素,用于容纳地图。例如:
```
<div id="map" style="width: 100%; height: 500px;"></div>
```
3. 创建地图对象
在JavaScript代码中,创建一个地图对象,并将其显示在页面上。例如:
```
var map = new AMap.Map('map', {
zoom: 10,
center: [116.39, 39.9]
});
```
其中,`zoom`表示地图的缩放级别,`center`表示地图的中心点坐标。
4. 创建折线对象
在JavaScript代码中,创建一个折线对象,并将其添加到地图上。例如:
```
var lineArr = [
[116.368904,39.913423],
[116.382122,39.901176],
[116.387271,39.912501],
[116.398258,39.904600]
];
var polyline = new AMap.Polyline({
path: lineArr,
strokeColor: "#3366FF",
strokeWeight: 5,
strokeOpacity: 1
});
polyline.setMap(map);
```
其中,`path`表示折线路径,由一组坐标点组成,`strokeColor`表示折线颜色,`strokeWeight`表示折线宽度,`strokeOpacity`表示折线透明度。
5. 运行代码
保存并运行代码,即可在高德地图上看到绘制的折线。
以上就是在C#中使用高德地图绘制线的步骤。
C#读取txt文件中经纬度信息用按钮实现在高德地图web上折线的绘制
首先,我们需要读取txt文件中的经纬度信息。可以使用C#中的StreamReader类来读取txt文件。具体代码如下:
```
string filePath = "your file path";
StreamReader sr = new StreamReader(filePath);
string line;
List<string[]> positions = new List<string[]>();
while ((line = sr.ReadLine()) != null)
{
string[] position = line.Split(',');
positions.Add(position);
}
sr.Close();
```
接下来,我们需要在按钮的Click事件中调用高德地图的JavaScript API来实现折线的绘制。具体代码如下:
```
protected void DrawLine_Click(object sender, EventArgs e)
{
StringBuilder js = new StringBuilder();
js.Append("<script type=\"text/javascript\">");
js.Append("var map = new AMap.Map('container', {zoom: 10, center: [116.39,39.9]});");
js.Append("var path = [");
foreach (string[] position in positions)
{
js.AppendFormat("[{0},{1}],", position[0], position[1]);
}
js.Remove(js.Length - 1, 1);
js.Append("];");
js.Append("var polyline = new AMap.Polyline({path: path});");
js.Append("polyline.setMap(map);");
js.Append("</script>");
ClientScript.RegisterStartupScript(GetType(), "drawline", js.ToString());
}
```
在上面的代码中,我们首先创建了一个AMap.Map对象,然后将读取到的经纬度信息存储在一个数组中,最后创建了一个AMap.Polyline对象并将其添加到地图上。需要注意的是,我们将这段JavaScript代码通过RegisterStartupScript方法注册到页面上,以便在页面加载完成后执行。
最后,在页面上添加一个用于显示地图的div元素,代码如下:
```
<div id="container" style="height: 500px;"></div>
```
这样,当用户点击按钮时,就会在页面上显示一个包含折线的高德地图。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)