python打印三角形 倒三角形 等腰三角形图解分析过程

知识点:1.利用循环打印*     2.关注i和j的关系   3.嵌套以及二次嵌套    4.range(x,y)左闭右开

一 打印三角形   5.循环考虑的就i j相互之间的关系,i与j是否需要带入循环内部(九九乘法表)

重点 我们前期学习主要学习思路,所以搞不明白就一步一步在纸上写下来

*

**

***

****

分析过程 1.看整体 一共有四行说明“外层”执行四次循环 for i in range(1,5)#左闭右开所以1——5

                2.看每一行  第一行1个*  第二行2两个*  第三行 3个* 第四行 4个*#所以内部循环的关系就是行数“i”是几就循环几次 for j in range(1,i+1)#这里注意是i+1

                3.print()里自带“换行”,内部循环不需要换行所以print(“*”,end=“ ”),内部循环完毕才换行,所以里边的for循环同级别带一个print()

for i in range(1,5):
    for j in range(1,i+1):#初学者容易丢失“:”,这个冒号
        print("*",end="")
    print()

二 打印倒立三角形

****

***

**

*

分析过程  主体思路依然是考虑外部循环与内部循环,内部循环与行数的关系的关系

1.外部循环四次 for i in range(1,5)#回忆一下左闭右开

### Delaunay三角网生成算法的图形化解释 Delaunay三角剖分是一种广泛应用于计算几何中的方法,它具有独特的特性——即任何顶点都不位于其他任意三个顶点所形成的圆内部[^1]。这种特性的直观理解可以通过逐步构建过程来展示。 #### 图形化步骤解析 1. **初始点集准备** 首先定义一组离散点集合 \( P \),这些点将在平面上形成Delaunay三角剖分的基础。假设我们有若干随机分布的二维坐标点。 2. **超级三角形引入** 创建一个覆盖整个点集的大三角形(通常称为“超级三角形”),该三角形应足够大以包围所有的输入点。此操作是为了便于后续增量插入法的应用[^5]。 3. **逐点插入与更新** 对于每一个新加入的点: - 找到包含当前点的所有现有三角形。 - 删除那些被新点破坏空外接圆条件的边。 - 将新的点连接至删除区域边界上的所有可见顶点,从而创建一系列新的合法三角形[^4]。 4. **移除虚拟贡献者** 完成全部点的插入之后,最后一步是从最终结果中剔除由最初设置的超级三角形引发的相关结构部分。 以下是利用Python实现上述逻辑的一个简单例子: ```python import matplotlib.pyplot as plt from scipy.spatial import Delaunay import numpy as np points = np.array([ [0, 0], [1, 4], [2, 3], [4, 1], [1, 1], [2, 2], [3, 2], [3, 3] ]) tri = Delaunay(points) plt.triplot(points[:,0], points[:,1], tri.simplices) plt.plot(points[:,0], points[:,1], 'o') for j, p in enumerate(points): plt.text(p[0]-0.03, p[1]+0.03, j, ha='right') circumcenters = [] for simplex in tri.simplices: pts = points[simplex] center = (sum(pts[:,0])/3, sum(pts[:,1])/3) circumcenters.append(center) circumcenters = np.array(circumcenters) plt.plot(circumcenters[:,0], circumcenters[:,1],'*r') plt.show() ``` 以上代码片段展示了如何使用`scipy.spatial.Delaunay`模块来进行标准的Delaunay三角划分,并通过matplotlib库将其可视化出来。 ### 结论 综上所述,借助图形演示可以帮助更深入地理解和验证Delaunay三角剖分的过程及其核心原则。这种方法不仅限于理论探讨,在实际应用如地形分析、有限元网格生成等领域也极为重要[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值