↓ 跳过正文

Science

圆形坠落模拟算法设计

·355 字·1 分钟
目标:实现一个算法,模拟在一个封闭二维区域,圆形小球朝给定方向坠落的过程,实现二维区域的紧密填充。 像下面这样: 难点,及其简单解决: 1.如何把粒子移动尽可能远? 图中的粒子i,能往下移动多远?一般情况,碰撞?边界? 一个简单解法:

【旧代码】传热过程数值模拟

·2688 字·6 分钟
传热过程数值模拟(《传热学》实验指导书第四部分第一题,第一,第二类边界条件) 问题背景 # 2010年十月写的旧代码。 第一类边界条件是给定边界温度。 第二类是对流边界。 区域都是如下形状的: -------------------------------- | | | | | | | ---------------------- | | | | | | | | | | | | | | | | --------- 用C++纯属蛋疼。

找出平面上的特殊无向图中的所有三角形的算法

·813 字·2 分钟
问题提出背景:在非结构化三角形网格生成过程中,若采用前沿推进法,在推进过程中是不好构造三角形的(而且也没有要),最好在把所有的边都连好以后再找出所有三角形,于是提出了问题:在由三角形构成的平面无向图中如何找出所有三角形? 网格如图: 要注意的是,这个无向图很特殊, 1.这个图在平面上。 2.这个图是由三角形构成的(如果不是由三角行构成,那这个网格就没有用处了)。 我的算法如下,伪代码表示: foreach(点 p in所有的点){ foreach(点 np in p的所有邻居点){ foreach(点 nnpin np的所有邻居点){ if( p,np,nnp三点两两不重合 && p,np,nnp三点两两相连 && p==uniqPointOfTriangle(p,np,nnp) && uniqPointOf2Points(np,nnp)==np) ){ 输出p,np,nnp构成的三角形。 } } } } 算法的关键在于uniqPointOfTriangle( )和uniqPointOf2Points( )这两个函数。