ショックを受けました!C言語では、豚ペイジを描くことができますか?[社会] IペイQigeソースコード付き!

兄ペイジ社会、その後火災、そして我々が使用する方法を共有しようとしている次の  豚のページを塗るC言語を

符号付距離フィールド(符号付距離場、SDF)を使用し、円形を表しています。

この方法を採用して形状を表すが、今回はASCII文字を使用したい| / = \枠の形状を描き、そしてこのように、内部を埋めます:

SDF勾配(勾配)方向への自衛隊最大の変化に代わって、この方向は、文字のどれを決定するために使用することができます。

)(私たちは、差動でSDF勾配近似を尋ねると、勾配の角度はATAN2によって決まります。

Cで書かれた言語の単純な実装は、ドロー半径は0.8と幅だけでラウンドフレームと0.1キャンバス。

       その後、我々は、豚のページを描画するコードの19行で、次に、それらが適切に回転すると、円形の複数の描画、ズーム、その建設的立体幾何比と組み合わせることができます。

コード!

ミロイップ#による// ASCIIペッパピッグは、#includeの#includeの#define T重が含まれます

TがC(T X、T Y、T R){戻りSQRT(X * X + Y * Y)-R;}

T U(T X、T Y、T T){リターンX * COS(T)+ Y * SIN(T);}

TのV(Tは、X、T Y、T tの){戻りY * COS(T)-X * SIN(T);}

T FA(Tは、X、T Y){戻りFMIN(C(X、Y、0.5)、C(X * 0.47 + 0.15、+ Y 0.25,0.3));}

Tいいえ(Tは、X、T Y){戻りC(X * 1.2 + 0.97、+ Y 0.25,0.2);}

T NH(T X、T Y){戻りFMIN(C(X + 0.9、Y + 0.25,0.03)、C(X + 0.75、+ Y 0.25,0.03));}

TのEA(T X、T Y){戻りFMIN(C(X * 1.7 + 0.3、Y + 0.7,0.15)、C(U(X、Y、0.25)* 1.7、V(X、Y、0.25)+ 0.65,0.15));}

TのEY(Tは、X、T Y){戻りFMIN(C(X + 0.4、Y + 0.35,0.1)、C(X + 0.15、+ Y 0.35,0.1));}

T PU(T X、T Y){戻りFMIN(C(X + 0.38、+ Y 0.33,0.03)、C(X + 0.13、+ Y 0.33,0.03));}

TのFR(T X、T Y){戻りC(X * 1.1から0.3、Y + 0.1,0.15);}

TのMO(T X、T Y){戻りFMAX(C(X + 0.15、Y-0.05,0.2)、 - C(X + 0.15、Y 0.25));}

T O(Tは、X、T Y、T(* F)(T、T)、T I){T、R = F(X、Y);戻りファブ(R)<0.02(ATAN2(F(X、Y ?+ 1E-3)-R、F(X + 1E-3、Y)-R)+0.3)* 1.273 + 6.5:R <0 I:0;}

T S(Tは、X、T Y、T(* F)(T、T)、T I){戻りF(X、Y)<0 I:0;}?

?のT F(T X、T Y){リターンO(X、Y、なし、1)FMAX(O(X、Y、なし、1)、S(X、Y、NH、12)):FMAX(O (X、Y、FA、1)、FMAX(O(X、Y、EY、11)、FMAX(O(X、Y、EA、1)、FMAX(O(X、Y、MO、1)、FMAX (S(X、Y、FR、13)、S(X、Y、PU、12))))));}

?; Y <0.6であり、y + = 0.05 / S、のputchar(1:(T Y = -1、S = A> 1は、strtod(B [1]、0)にintメイン(int型A、チャー** B){ '\ n' は))(T X = -1のためであり、x <0.6であり、x + = 0.025 /秒)のputchar([(int型)は、f(U( "| / = \\ | | / = \\ @。!" X、Y、0.3)、V(X、Y、0.3))]);}

2倍:

4回:

8回:

どうでしょうか?この時間はまだでしょうか?また、このペーチはヨーヨーを上に移動させてみてください!

プログラミングの愛する人のために、小さなパートナーのグループが学ぶために一緒に存在している非常に重要であり、私はゼロベースのプログラミング入門持つ交流クラブを学ぶだけでなく、ビデオファイルを学習し、歓迎初心者や少しの友人で進んでいます!

公開された520元の記事 ウォンの賞賛132 ・は 80000 +を見て

おすすめ

転載: blog.csdn.net/HUYA69/article/details/105197812