Dynagon代码阅读感想

因为要做动态网络生成,于是去github找代码,看到这个dynagon比较对的上眼,于是clone下来慢慢研究。

链接:https://github.com/lanius/dynagon

于是我发现这个真的是写的好棒好棒,C#写的真是漂亮啊,让我见识到了delegate,lambda表达式,select,order,sort,aggregate,泛型,LIST,还有封装的种种。

看到triangulator那一块的时候遇到了Delaunay三角划分算法,没有补算法的情况下真是看不下去了。但是已经觉得学到了很多很多的东西。

简单举一个例子吧,之前我如果要取几个点的中心点的话,撸出来的代码丑的要死。这边两行搞定了:

 

protected Vector3 GetCentroid() {
			var uniqs = vertices.Distinct();
			return uniqs.Aggregate(Vector3.zero, (sum, v) => (sum + v)) / uniqs.Count();
			
		}

  多么漂亮,多么简洁

虽然这个包写的相当漂亮,以至于需要用的话只需要

var vertices = new List<Vector3>() {
		new Vector3(0f, 1f, 0f),
		new Vector3(0f, -0.3f, 0.9f),
		new Vector3(0.8f, -0.3f, -0.5f),
		new Vector3(-0.8f, -0.3f, -0.5f)
	};
	Factory.Create(vertices);

就可以搞定了,但是阅读代码的过程实在太享受了。

posted @ 2015-03-29 22:06  小明_siuming2  阅读(147)  评论(0编辑  收藏  举报