Vizuály točících se koblih jsou oblíbeným programovacím počinem, mezi vývojáři je běžné, že jde o stručný, přímočarý, ale fascinující projekt. Tento koncept se točí kolem vykreslování trojrozměrné (3D) grafiky ve dvourozměrném (2D) kontextu, konkrétně vytvoření 3D tvaru donutu pomocí programování. I když se to může zdát složité a náročné, je to docela zábavné a dá se to zvládnout díky dobrému pochopení matematiky a konkrétněji pochopení toho, jak funkce sinus a kosinus přispívají ke kruhovým a rotačním prvkům.
Ilustrace rotující koblihy využívá znaky ASCII, základní kámen textové reprezentace v počítačových systémech. Sestavení odstředivky vyžaduje omezené knihovny a omezené, cílené znalosti kódování. V programovacím jazyce C budeme muset využívat matematické i standardní knihovny, abychom vytvořili čistý a efektivní výstup.
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #define A 0 #define B 0 #define X 64 #define Y 32 double k; int main() { double a = 0, b = 0, i, j; for (; A<8888; b += B, a += A) { double c = a, d = b, e = X/2 + X*sin(d*7)*(23/4+sin(b*3)/2), f = Y + Y*cos(d*7)*(23/4+cos(b*3)/2), g = 30*cos(d*7), h = X/2*(cos(c*7)*(23/4+sin(c*3)/2-sin(d*7)*(13/7+cos(a*13/2)/2)*cos(c*7)*cos(d*7*d)), i = X/2*(sin(c*7)*(13+cos(b*13/2)/2-sin(a*7)*(13+cos(d*13)/2)*sin(c*7)*cos(d*7)); if (0<=f && f<Y && 0<=h && h<X && d > z[(int)f][(int)h]) p[(int)f][(int)h] = 46 + b / 4; printf("33[0;0H%sn", (char*)p); } return 0; }
Pochopení principu a kodexu
Naším hlavním zájmem při vytváření točící se koblihy je pochopení konceptu sinus a kosinus. Výše uvedený kód ukazuje, že kobliha se točí ve vertikální i horizontální rovině, což je v souladu se zákonem kruhů a rotací. Základní znalosti o geometrii a rotaci kružnice jsou zde tedy zásadní.
Za prvé, máme dvě rotační proměnné `a` a `b`, které se neustále zvyšují při každé iteraci cyklu for. Zde `a` představuje rotaci kolem osy Z, zatímco `b` je kolem osy X.
Použité funkce
Náš točící se koblihový kód využívá několik standardních knihoven jazyka C a matematických funkcí. Knihovna math.h poskytuje hlavně matematické deklarace a funkce, jako je cos() a sin(), které používáme pro rotaci prstenců.
Funkce printf() definovaná v stdio.h je kritická pro tisk každého snímku naší rotující koblihy, zatímco funkce pow() pomáhá kvadraovat čísla. Cos() a Sin() nám díky své periodické povaze umožňují simulovat kruhový pohyb prstence.
Pamatujte, že při kódování v C je klíčová jednoduchost a efektivita. Vždy se snažte, aby byl váš kód čistý, čitelný a efektivní. Se správnými matematickými základy a principy kódování budete mít svou rotující koblihu připravenou a spuštěnou během okamžiku!