前面講了謝爾賓斯基三角形,和這一節的將把三角形變為正方形,即謝爾賓斯基地毯,它是由瓦茨瓦夫·謝爾賓斯基於1916年提出的一種分形,是自相似集的一種。
謝爾賓斯基地毯的構造與謝爾賓斯基三角形相似,區別僅在於謝爾賓斯基地毯是以正方形而非等邊三角形為基礎的。將一個實心正方形划分為的9個小正方形,去掉中間的小正方形,再對余下的小正方形重復這一操作便能得到謝爾賓斯基地毯。如下圖:
核心代碼:
static void SierpinskiCarpet(const Vector3& v, Vector3* pVertices, Yreal d) { pVertices[0] = v + Vector3(-d, -d, 0.0f); pVertices[1] = v + Vector3(-d, d, 0.0f); pVertices[2] = v + Vector3( d, d, 0.0f); pVertices[3] = v + Vector3( d, -d, 0.0f); pVertices[4] = v + Vector3( d, 0, 0.0f); pVertices[5] = v + Vector3(-d, 0, 0.0f); pVertices[6] = v + Vector3( 0, d, 0.0f); pVertices[7] = v + Vector3( 0, -d, 0.0f); }













