Rysowanie kwadratu (kod ASCII)
Ostatnio zmodyfikowano 2016-11-24 15:39
Anim Temat założony przez niniejszego użytkownika |
Rysowanie kwadratu (kod ASCII) » 2016-11-24 00:14:33 Cześć. Mam mały problem. Chciałbym narysować w terminalu kwadrat. Przy czym kwadrat może być wykonany przy użyciu dowolnego znaku z kodu ASCII. I tutaj pojawia się w moim mniemaniu problem. Ponieważ w zależności od znaku, figura przypomina bardziej lub mniej kwadrat, a to ze względu na odstęp pomiędzy znakami - w zależności czy dotyczy to kolumny czy wiersza. Może narysuję kwadrat (teoretyczny) przy użyciu gwiazdek:
**** * * * * ****
Jak widzicie narysowałem figurę 4x4, ale ona kwadratu nie przypomina. I teraz moje pytanie, czy istnieje jakaś możliwość (bez kombinowania za każdym razem spacjami), aby to faktycznie był kwadrat ;p
Pozdrawiam :)
Ps: z góry przepraszam jeśli nie ten dział, ale myślę, że to idealnie nadaje się do podstaw :D |
|
karambaHZP |
» 2016-11-24 00:19:25 figura przypomina bardziej lub mniej kwadrat, a to ze względu na odstęp pomiędzy znakami | **** * * * * ****IIII I I I I IIIIJak widzisz znak nie ma znaczenia. W terminalu znaki mają stałą szerokość. Deformacja figury wynika z różnicy między wysokością, a szerokością znaku w terminalu. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2016-11-24 00:38:04 Czyli nic nie można z tym zrobić? ^^ czyli czy mi się podoba czy nie muszę mieć prostokąt zamiast kwadratu ;>
Smutek ;( |
|
michal11 |
» 2016-11-24 09:01:08 Możesz tak wyliczać "długości" boków żeby optycznie to był kwadrat, z tym, że wtedy na pewno podstawa i bok nie będą miały tyle samo znaków. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2016-11-24 09:57:42 hm. rozumiem. to w takim razie mi nie pomoże, ponieważ w zadaniu, które mam do zrobienia muszę mieć możliwość wybrania znaku ASCII w celu narysowania figury. Czyli myślę, że bardziej sensowne będzie wstawianie dodatkowej spacji pomiędzy znakami w wierszu. Dziękuję :) |
|
karambaHZP |
» 2016-11-24 11:25:25 Czyli myślę, że bardziej sensowne będzie wstawianie dodatkowej spacji pomiędzy znakami w wierszu. Dziękuję :) |
Możesz pokombinować z rozmiarem czcionki rastrowej w konsoli. Powinien być tam rozmiar 8x8 i wtedy będziesz miał kwadrat. Szukaj we właściwościach konsoli. |
|
Veranez |
» 2016-11-24 15:39:03 Możesz zrobić coś w tym stylu, można zmienić znak na dowolny inny, wysokość, szerokość, co chcesz #include <iostream> #include <conio.h>
using namespace std;
const int szerokosc = 28, wysokosc = 28;
char lg = 201; char pg = 187; char ld = 200; char pd = 188; char gd = 205; char lp = 186;
int main() { cout << lg; for( int i = 0; i < szerokosc; i++ ) { cout << gd << gd; } cout << pg << endl; for( int i = 0; i < wysokosc; i++ ) { cout << lp; for( int j = 0; j < szerokosc; j++ ) cout << " "; cout << lp << endl; } cout << ld; for( int i = 0; i < szerokosc; i++ ) { cout << gd << gd; } cout << pd; getch(); return 0; }
A jak trzeba to masz jeszcze kod pokazujący znaki ASCII, można zawsze sprawdzić w necie, ale co tam :P #include <iostream> #include <conio.h>
using namespace std;
int main() { for( int i = 0; i < 270; i++ ) cout << i << " " <<( char ) i << endl; getch(); return 0; }
|
|
« 1 » |