生成正三角形

【3】生成正三角阵列

public class table5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int i,j;
		int input=10;
		System.out.println("正三角:");
		for(i=1;i<=input;i++)
		{
			for(j=i;j<input;j++)
			{
				System.out.print(" ");
			}
			//打印左半边三角形
			for(j=i;j>=1;j--)
			{
				if(j>=10)
					System.out.print("*");//大于9的数字用*表示
				else
					System.out.print(j);//如果全部打印*号,此处将j用*代替
			}
			//打印右半边三角形
			for(j=2;j<=i;j++)
			{
				if(j>=10)
					System.out.print("*");
				else
					System.out.print(j);//如果全部打印*号,此处将j用*代替
			}
			System.out.println();
		}
	}

}

在这里插入图片描述

### 如何在 GIS 系统中基于指定坐标创建正三角形 为了在地理信息系统(GIS)中根据给定的坐标生成一个正三角形,可以通过编程方式实现这一目标。下面介绍一种方法来完成这项工作。 #### 方法概述 通过计算三个顶点的位置并将其作为几何对象添加到地图上来构建正三角形。这涉及到确定中心位置以及定义边长和方向角等参数。 #### 计算过程 假设已知中心点经纬度 `(lon, lat)` 和所需半径 `r`(即从中心到底部的距离),则可以根据这些信息推导出其他两个顶点: 1. **底部顶点**:位于中心下方距离为 r 的地方; 2. **左侧顶点**:相对于底边成 60 度夹角向左偏移; 3. **右侧顶点**:同样地,在右边形成另一个 60 度角度。 对于球面坐标系下的转换,可以采用 Haversine 公式或其他适用于地球曲率的方法来进行更精确的测量[^1]。 #### Python 实现示例 这里给出一段简单的Python代码片段用于说明如何利用Shapely库创建这样一个图形,并保存为Shapefile文件以便导入至任何支持此格式的地图应用中查看。 ```python from shapely.geometry import Polygon, Point import geopandas as gpd from pyproj import Proj, transform def create_triangle(lon, lat, side_length_km=1): # 定义投影转换器 wgs84 = Proj(init='epsg:4326') # 将纬度经度转为平面直角坐标系下处理更容易理解的形式 local_utm_zone = f"+proj=tmerc +lat_0={lat} +lon_0={lon}" utm_proj = Proj(local_utm_zone) center_x, center_y = transform(wgs84, utm_proj, lon, lat) bottom_vertex = ( center_x, center_y - (side_length_km * 1000 / 2)) # 转换公里数为米 angle_degrees = 60 radians_per_degree = 3.141592653589793 / 180 height = side_length_km * 1000 * ((3)**(1/2))/2 left_vertex = ( center_x - (height * math.tan(radians_per_degree*angle_degrees)), center_y + (height)) right_vertex = ( center_x + (height * math.tan(radians_per_degree*angle_degrees)), center_y + (height)) vertices = [ transform(utm_proj, wgs84, vx, vy)[:2] for vx, vy in [bottom_vertex, left_vertex, right_vertex]] triangle_polygon = Polygon(vertices) return triangle_polygon if __name__ == "__main__": polygon = create_triangle(-73.993436, 40.750042, 1) # 创建以纽约时代广场为中心的一个单位长度为1km的正三角形区域 df = gpd.GeoDataFrame({'geometry': [polygon]}) df.crs = {'init': 'epsg:4326'} output_file_path = "triangle.shp" df.to_file(output_file_path) ``` 上述脚本会生成一个名为 `triangle.shp` 的 Shapefile 文件,其中包含了所请求的正三角形单元格。用户可以在 ArcGIS 或 QGIS 这样的桌面应用程序中打开该文件进行进一步分析或展示[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值