0

私は驚くほどやりがいのあることをしようとしています --- 正三角形をコマンドライン (Mac OS X のターミナル) に出力します。ユーザー指定の定数まで、パスカルの三角形の n 番目の行を計算できるプログラムがあります。よく知られているように、パスカルの三角形のモジュロ 2 の値を取ると、それとシェルピンスキーの三角形の間に相関関係があります。

奇数の値を 1 に、偶数の値を 0 に設定しています。ターミナルで結果を印刷してズームアウトすると、明らかに等辺ではないという事実を除けば、きれいに見えます。これは、ズームアウトした後の私のプログラムの出力例です(したがって、ゼロと1は大きく異なります)。

ここに画像の説明を入力

しかし、私は疑問に思っています...この三角形を正三角形に見せる方法はありますか? または、出力を別の場所に印刷する必要がありますか? さまざまなフォント、さまざまな線幅レベルを試してみましたが、等辺に近いものは何も得られず、たとえそうであったとしても、これを確認する信頼できる方法がありません. 問題の一部は、ターミナルでズームイン/ズームアウトすると、線の幅と高さのスケールが異なることです。

私のコードは、生成する行数を入力として受け取ります。次に、各行を印刷するときにその数が考慮されます。したがって、最初の行 (単一の「1」) には、1 を印刷する前に n-1 スペースを印刷する必要があります。次に、2 番目の行は、実際の内容 (「1 1」) を印刷する前に、n-2 スペースを印刷する必要があります。 )、各数字の間にスペースを含むなど。これは C++ ですが、それは問題ではないと思います。

画像を取得する他の方法を見つける必要があると思われるので、使用するライブラリに関するアドバイスは素晴らしいでしょう。

4

2 に答える 2

0

適切なオプションは、三角形を選択したラスター形式にレンダリングし、 aalibまたはlibcacaを使用してそのイメージを端末にレンダリングすることです。

于 2014-03-04T04:09:30.737 に答える
0

画像の実際の幅と高さを最終的に把握し、その画像の寸法を定義する 2D マトリックスを生成しようとします (そして、既に知っていると思います)。この行列は、整数の 2D セット (24 ビット幅以上で 8 ビットの色成分用のスペースを与える)、または色成分ごとに 1 つずつ、3 つの別個の 2D 行列にすることができます。これらの値をすべて、背景色にしたいものに設定します。

実際の三角形を表示したいその他の色に適切なピクセルを設定するアルゴリズムを移動します。

このようなマトリックスを .bmp (またはビットマップ) ファイルに書き出す方法については、こちらを参照してください。

他のライブラリを使用せずに純粋な c/c++ で BMP イメージを書き込む

于 2014-03-04T04:11:49.670 に答える