Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- // vienos spalvos struktura pagal RGB komponentus
- struct Spalva {
- int r, g, b;
- };
- // staciakampio struktura
- struct Staciakampis {
- int x, y;
- int ilgis, plotis;
- Spalva spalva;
- };
- // nupiesia staciakampi ant piesinio
- void nupiestiStaciakampi ( Spalva piesinys[][100], Staciakampis staciakampis ) {
- for ( int y = staciakampis.y; y < staciakampis.y + staciakampis.ilgis; y++ ) {
- for ( int x = staciakampis.x; x < staciakampis.x + staciakampis.plotis; x++ ) {
- piesinys[ y ][ x ] = staciakampis.spalva;
- }
- }
- }
- int main()
- {
- // reikalingi kintamieji
- int i, j;
- int staciakampiuSk, galutinisIlgis = 0, galutinisPlotis = 0;
- Staciakampis staciakampis;
- // atidaro ivedimo ir isvedimo failus skaitymui ir rasymui
- ifstream ivedimoFailoRankena ( "U2.txt" );
- ofstream isvedimoFailoRankena ( "U2rez.txt" );
- // sukuria spalvu masyva, piesinio langeliams saugoti
- Spalva piesinys[ 100 ][ 100 ];
- // nustato pradines piesinio langeliu spalvas
- for ( i = 0; i < 100; i++ ) {
- for ( j = 0; j < 100; j++ ) {
- piesinys[ i ][ j ].r = 255;
- piesinys[ i ][ j ].g = 255;
- piesinys[ i ][ j ].b = 255;
- }
- }
- // perskaito staciakampiu skaiciu
- ivedimoFailoRankena >> staciakampiuSk;
- // nuskaito staciakampius, juos nupiesia ir suskaiciuoja galutini ilgi ir ploti
- for ( i = 0; i < staciakampiuSk; i++ ) {
- ivedimoFailoRankena >> staciakampis.x >> staciakampis.y;
- ivedimoFailoRankena >> staciakampis.plotis >> staciakampis.ilgis;
- ivedimoFailoRankena >> staciakampis.spalva.r >> staciakampis.spalva.g >> staciakampis.spalva.b;
- nupiestiStaciakampi( piesinys, staciakampis );
- if ( staciakampis.x + staciakampis.plotis > galutinisPlotis )
- galutinisPlotis = staciakampis.x + staciakampis.plotis;
- if ( staciakampis.y + staciakampis.ilgis > galutinisIlgis )
- galutinisIlgis = staciakampis.y + staciakampis.ilgis;
- }
- // uzdaro ivedimo faila
- ivedimoFailoRankena.close();
- // isveda galutini ilgi ir ploti
- isvedimoFailoRankena << galutinisIlgis << " " << galutinisPlotis << endl;
- // isveda nuspalvintus langelius
- for ( i = 0; i < galutinisIlgis; i++ ) {
- for ( j = 0; j < galutinisPlotis; j++ ) {
- isvedimoFailoRankena << piesinys[ i ][ j ].r << " ";
- isvedimoFailoRankena << piesinys[ i ][ j ].g << " ";
- isvedimoFailoRankena << piesinys[ i ][ j ].b << endl;
- }
- }
- // uzdaro isvedimo faila
- isvedimoFailoRankena.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement