Jak narysować prostokąt w C jak najprościej? Ja na kartce mam pomysł, ale nie wiem jak przełożyć to na C. Czy ktoś pomoże? Ja spróbuję swój pomysł pokazać tu w C.

- Rejestracja:prawie 20 lat
- Ostatnio:19 dni
- Rejestracja:około 10 lat
- Ostatnio:prawie 8 lat
- Postów:38
Chciałam to zrobić tablicą, bo muszę zapisać to do pliku.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
FILE*plik;
int wysokosc, szerokosc; //wielkosc tablicy
int pwysokosc, pszerokosc,r; //wymiary prostokata
int i;
int x, y;
int **tab;
int main()
{
{
printf("Podaj wysokosc tablicy \n");
scanf("%d", &wysokosc);
printf("Podaj szerokosc tablicy:\n");
scanf("%d", &szerokosc);
}
tab = (int**)malloc(szerokosc, sizeof(*tab));
for (i = 0; i < wysokosc; i++)
tab[i] = (int**)malloc(wysokosc, sizeof(tab));
printf("podaj wspolrzedna x\n");
scanf("%d", &x);
printf("podaj wspolrzedna y\n");
scanf("%d", &y);
{
plik = fopen("Prostokat.pgm", "w");
fprintf(plik, "P2\n# prostokat\n%d %d\n", szerokosc, wysokosc);
for (p = 0; p<wysokosc; p++)
{
if (p<y)
{
for (r = 0; r<pszerokosc; r++)
fprintf("%d ", 255);
}
if (p >= p && p <= (y + pwysokosc))
{
for (r = 0; r<x; r++)
fprintf(plik, "%d ", 255);
for (r >= x; r <= (x + pszerokosc); r++)
fprintf(plik, "%d ", 0);
for (r>(x + pszerokosc); r <= szerokosc; r++)
fprintf(plik, "%d ");
}
if (p>(y + pwysokosc))
{
for (r = 0; r<szerokosc; r++)
fprintf(plik, "%d ");
}
fprintf("\n", plik);
}
fclose(plik);
}
}
}
Chciałabym to zrobić, że użytkownik podaje współrzędne górnego rogu i dodawać aż będzie dana szerokość i analogicznie z wysokością. I nie wiem jak to zapisać w C. Dziękuję bardzo za pomoc.

- Rejestracja:prawie 20 lat
- Ostatnio:19 dni
To tak trzeba było od razu, potrzebujesz nie narysować prostokąt zaś stworzyć plik w formacie *.pgm z rysunkiem prostokąta.
Trochę brakuje ci danych oprócz wymiarów i pozycji prostokąta potrzebujesz wymiary obrazka.
Dane o prostokącie przelicz do left,top,right,bootom.
Po czym robisz pętle po y, x wg rozmiarów obrazka, dalej w zależności od tego czy potrzebujesz pełny prostokąt czy tylko kreski robisz jedno z:
fprintf(plik,(y==top)||(y==bottom)||(x==left)||(x==right)?"255 ":"0 ");
fprintf(plik,(top<=y)&&(y<=bottom)&&(left<=x)&&(x<=right)?"255 ":"0 ");
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.