 |
www.etipg.fora.pl Forum studiów niestacjonarnych Politechniki Gdańskiej na ETI
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Karol90
Stały użytkownik
Dołączył: 07 Paź 2010
Posty: 115
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Chojnice
|
Wysłany: Pon 17:01, 01 Lis 2010 Temat postu: Zmiana wielkości figury |
|
|
Wie może ktoś jak zmieniać wielkość figury(za pomocą klawiszy "+" i "-")???
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
pimperlo
Świeżak
Dołączył: 16 Paź 2010
Posty: 29
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Sopoćków
|
Wysłany: Pon 18:07, 01 Lis 2010 Temat postu: |
|
|
Kod: | #include <iostream.h>
#include <conio.h>
void naglowek ();
void czytaj_dane(char &znak, int &q);
int main()
{
char znak;
int p,q,i,m ;
naglowek ();
czytaj_dane(znak, q);
do
{
clrscr();
_setcursortype(_NOCURSOR); //wylaczenie kursora
naglowek ();
for ( p=0; p<=q-1; p++) //petla ukosnych
{
gotoxy ( 41+p, 13+p); cout << znak; //ukosna prawa
gotoxy ( 41-p, 13+p); cout << znak; //ukosna lewa
}
for ( i=0; i<=2*q; i++ ) //petla pionowych
{
gotoxy ( 41+p, 13+p-i); cout << znak; //pionowa prawa
gotoxy ( 41-p, 13+p-i); cout << znak; //pionowa lewa
}
m = getch (); // pobranie znaku z klawiatury
switch (m)
{
case '+': if (q >= 2 && q < 8) q++; break; // zwiekszanie figury
case '-': if (q > 2) q--; break; //zmniejszanie figury
}
}
while (m != 27); //ESC przerywa program
return 0;
}
//-----------------------------------------------------------------
void naglowek ()
{
cout << " Program rysuje figure okreslonym znakiem o zadanej wielkosci";
cout << "\n Wykonal: ";
cout << "\n Klawisz ESC - koniec programu";
cout << "\n Klawisz '+' zwieksza figure";
cout << "\n Klawisz '-' znmniejsza figure";
}
//---------------------------------------------------------------------
void czytaj_dane(char &znak, int &q)
{
int x, y, b ;
cout << "\n \n Podaj jakis znak : ";
cin >> znak;
cout << "\n Podaj wielkosc figury (od 2 do 8) :";
x = wherex();
y = wherey();
do
{
gotoxy(x,y);
clreol();
b = 0;
cin >> q;
if (cin.fail())
{
b = 1;
cin.clear();
cin.ignore(255, '\n');
}
}
while ((q < 2) || (q > 8) || b);
} |
To mój cały progs - wyłap sobie fragment odpowiadający za wielkość.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Krzyżak
Stały użytkownik
Dołączył: 26 Wrz 2010
Posty: 120
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Gdańsk
|
Wysłany: Pon 19:54, 01 Lis 2010 Temat postu: |
|
|
Przyczepi się do Ciebie, że nie masz rysowania i zmiany wielkości w osobnych funkcjach tylko wszystko w mainie, ale to tak tylko jak liczysz na max pkt z projektu.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
pimperlo
Świeżak
Dołączył: 16 Paź 2010
Posty: 29
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Sopoćków
|
Wysłany: Pon 21:43, 01 Lis 2010 Temat postu: |
|
|
Nie czepiała się zbytnio...jeszcze pomagała mi przerabiać .
Zrobiłem tylko pierwszy projekt - to stykło na 3.
Większych ambicji w 1 sem. nie miałem - byle zdać bez strat własnych.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Karol90
Stały użytkownik
Dołączył: 07 Paź 2010
Posty: 115
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Chojnice
|
Wysłany: Wto 8:35, 02 Lis 2010 Temat postu: |
|
|
Mój wygląda tak:
Kod: | #include <iostream.h>
#include <conio.h>
#include <math.h>
const int GORA=72, DOL=80, LEWO=75, PRAWO=77;
void wczytajDane (float &wielk, char &znak);
void rysujFigure(float wielk, float X, float Y, char znak);
void ruszaj(float wielk, float &X, float &Y, char znak);
void main()
{
float X = 80, Y = 22; // wielkosc okna 80 x 24 (szer x wys)
float wielk;
char znak;
clrscr();
wczytajDane(wielk, znak);
rysujFigure(wielk, X, Y, znak);
ruszaj(wielk, X, Y, znak);
}
int czyt_int (float Ogr_g, float Ogr_d, float x, float y)
{
float liczba;
do
{
cin >> liczba;
if ((liczba > Ogr_g) || (liczba < Ogr_d))
{
gotoxy (x,y);
clreol();
}
}
while ((liczba > Ogr_g) || (liczba < Ogr_d));
return (liczba);
}
void wczytajDane(float &wielk, char &znak)
{
const int min_wielk = 3, max_wielk = 22;
int x, y;
cout << endl <<"Podaj rozmiar poczatkowy figury (3-22): ";
x = wherex ();
y = wherey ();
wielk = czyt_int (max_wielk, min_wielk, x, y);
cout << endl << "Podaj znak, ktorym ma byc rysowana figura: ";
cin >> znak;
}
void rysujFigure(float wielk, float X, float Y, char znak)
{
_setcursortype(_NOCURSOR);
clrscr();
int i, j;
for(i = X; i > X - wielk ; i--)
{
gotoxy(i, Y); cout << znak;
}
for(i = X + wielk , j = Y; i > X - wielk, j > Y - wielk; i--, j--)
{
gotoxy(i-wielk, j); cout << znak;
}
for(i = X; i > X - wielk; i--)
{
gotoxy(i, j+1); cout << znak;
}
}
void ruszaj(float wielk, float &X, float &Y, char znak) // przesuwanie figury klawiszami strzałek
{
int zmiana = 0;
char klawisz;
do
{
klawisz = getch();
switch (klawisz)
{
case GORA:
{
Y--; zmiana = 1;
if (Y-wielk < 0)
{
Y++;
zmiana = 0;
}
break;
}
case DOL:
{
Y++; zmiana = 1;
if (Y > 24)
{
Y--;
zmiana = 0;
}
break;
}
case LEWO:
{
X--; zmiana = 1;
if (X < 0 + wielk)
{
X++;
zmiana = 0;
}
break;
}
case PRAWO:
{
X++; zmiana = 1;
if (X > 80)
{
X--;
zmiana = 0;
}
break;
}
}
if (zmiana)
{
rysujFigure(wielk, X, Y, znak); zmiana = 0;
}
}
while (klawisz != 27);
} |
Może jakieś sugestie co do ulepszenia???
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
raczekm
Stały użytkownik
Dołączył: 27 Wrz 2010
Posty: 125
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Gdańsk
|
Wysłany: Czw 21:02, 04 Lis 2010 Temat postu: |
|
|
Wygląda jak świeżo skopiowany z jakiejś strony
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Krzyżak
Stały użytkownik
Dołączył: 26 Wrz 2010
Posty: 120
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Gdańsk
|
Wysłany: Czw 23:03, 04 Lis 2010 Temat postu: |
|
|
Floaty wpierdzielaja duzo pamieci jak nie musisz ich używać to nie używaj. Zmień na inty, albo short inty
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Karol90
Stały użytkownik
Dołączył: 07 Paź 2010
Posty: 115
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Chojnice
|
Wysłany: Pią 10:59, 05 Lis 2010 Temat postu: |
|
|
Właśnie nie wiem jak wpiąć to do zmiany wielkości figury
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Krzyżak
Stały użytkownik
Dołączył: 26 Wrz 2010
Posty: 120
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Gdańsk
|
Wysłany: Pią 11:30, 05 Lis 2010 Temat postu: |
|
|
Po co chcesz wpinać zmianę wielkości skoro masz zadanie z przesuwaniem ?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|