Zdravím,
postoupila jsem k dalším úkolům, co mám naprogramovat. Uvedu pozadí toho programu, pokud by jste chtěli být v obraze
Vytvořte program, který si od uživatele vyžádá souřadnice a poloměr pro dvě kružnice. Potom v jednom okně vykreslí tyto dvě kružnice a navíc třetí kružnici, jejíž střed bude ležet na spojnici středů těchto dvou kružnic a velikost poloměru bude průměrem z poloměru dvou zadaných kružnic. Použijte stejnou třídu Circle jako v předchozí úloze. Navíc v ní implementujte metody getCentreX(), getCentreY() a getRadius() pro získání hodnot příslušných členských proměnných. Dále mplementujte metodu setAverageCircle(), která přijme jako parametr dvě kružnice a z nich spočítá hodnoty svého středu a poloměru, jak je uvedeno výše. První kružnice bude vždy zelená, druhá modrá a třetí zprůměrovaná kružnice bude červená.
Jsem zatím u vykreslení spojnice metodou drawLine(), která zatím přijímá předem zadané parametry. Tato funkce se ale nevykonává. Proč?
#include <iostream>
#include <g2.h>
#include <g2_X11.h>
using namespace std;
class Circle
{
public:
Circle();
void setCentre(int ax, int ay);
void setRadius(int r);
void setColor(int c);
void printValues() const;
void draw();
void drawLine();
void readValues();
void readCentre();
void readRadius();
void readColor();
private:
int x, y;
int radius;
int color;
};
Circle::Circle()
{
x=1;
y=1;
radius=1;
color=1;
}
void Circle::readCentre()
{
int x, y;
cout<<"Zadejte souradnice stredu: ";
cin>>x>>y;
this->setCentre(x,y);
}
void Circle::readRadius()
{
int r;
cout<<"Zadejte polomer: ";
cin>>r;
this->setRadius(r);
}
void Circle::readColor()
{
int c;
cout<<"Zadejte barvu: ";
cin>>c;
setColor(c);
}
void Circle::setCentre(int ax, int ay)
{
x=ax;
y=ay;
}
void Circle::setRadius(int r)
{
radius=r;
}
void Circle::setColor(int c)
{
color=c;
}
void Circle::printValues() const
{
cout<<"Souradnice: "<<x<<", "<<y<<endl;
cout<<"Polomer: "<<radius<<endl;
cout<<"Barva: "<<color<<endl;
}
void Circle::draw()
{
g2_set_line_width(0, 5); // Tloustka cary bude 5 pixelu
g2_pen(0, color);
g2_circle(0, x, y, radius);
}
void Circle::drawLine()
{
g2_set_line_width(2, 5);
g2_pen(2, 7);
g2_line(2, 300, 400, 200, 250);
}
void Circle::readValues()
{
readCentre();
readRadius();
readColor();
}
void drawCircles(Circle circ1, Circle circ2)
{
circ1.draw();
circ2.draw();
}
int dev = 0;
int main()
{
Circle circ1, circ2;
circ1.readValues();
circ2.readValues();
circ1.printValues();
circ2.printValues();
dev = g2_open_X11(600, 600);
drawLine();
drawCircles(circ1, circ2);
cin.get();
cin.get();
return 0;
}