2014-03-04 153 views
0

我一直在嘗試做一些似乎令人驚訝的挑戰---在命令行(Mac OS X終端)上打印等邊三角形。我有一個程序,可以計算帕斯卡三角形的第n行,直到某個用戶指定的常量。衆所周知,如果採用Pascal三角形模2的值,那麼與Sierpinski's triangle之間有相關性。向終端打印等邊三角形

我一直在設置奇數值爲1,偶數值爲0,並且當我在終端上打印結果並縮小時,除了顯然不是等邊的事實外,它看起來不錯。這裏是縮小出路(所以零和一看起來非常不同)後我的程序的輸出例子:

enter image description here

但我不知道......有沒有辦法讓這個三角看正三角形?還是必須在其他地方打印輸出?我一直在嘗試使用不同的字體,不同的線寬等級,但我無法得到任何接近等邊的東西,即使它的確如此,我也沒有一種可靠的方法來檢查這種情況。部分問題還在於在終端上放大/縮小會導致不同的線寬和高度。

我的代碼輸入要生成的行數作爲輸入。然後,打印出每一行時就會考慮該數字。因此,第一行(僅爲單個「1」)在打印1之前將打印n-1個空格。然後第二行必須打印n-2個空格,然後打印其實際內容(即「1 1」 ),其中包括每個數字之間的空格,等等。它使用C++,但我認爲這不重要。

我懷疑我需要找到一些其他的方式讓圖像出來,所以任何關於圖書館的建議都會很棒。

+0

大多數字符類型是大於寬度高,所以它是將用印刷字符是困難的。 – trumpetlicks

+0

輸出中每個「單元位置」的2或3個字符通常爲大致方形單元。在我們討論提示時,還要考慮您只需要存儲二進制0和1,並對上面的兩個值進行異或運算以得到模2結果。而且,當你使用不同的顏色時,模3(比如說)會更有趣。 :-) –

+0

哦,是的,爲了更好玩,請考慮在位置(x,y)輸出'x&〜y'。呵呵。 –

回答

0

一個好的選擇是將三角形渲染爲您選擇的柵格格式,並使用aaliblibcaca將該圖像渲染到終端。

0

我會嘗試(我想你已經有了)弄清楚什麼樣的形象將最終成爲實際的寬度和高度,並生成二維矩陣界定圖像尺寸。該矩陣可以是二維整數集(不小於24位寬,給8位顏色分量提供空間),或3個獨立的二維矩陣,每個顏色分量一個矩陣。將所有這些值設置爲您想要的背景顏色。

通過算法設置合適的像素爲其他顏色,您希望實際的三角形顯示爲。

在這裏尋找寫這樣一個矩陣出.bmp(或位圖)文件。

Writing BMP image in pure c/c++ without other libraries