so also ... ich habe nun einen kreis ... den ich anklicken kann und mein Maus event wird auch "korrekt" ausgeführt ... alerdings bin ich auf zwei sehr merkwürdige sachen gestossen ...
zum einen das hier: (danke wegen der random fkt. aber das habe ich sogar schon geändert^^)
Code: Alles auswählen
int x = (((double)rand())/RAND_MAX)*(800-200);
int y = (((double)rand())/RAND_MAX)*(600-200);
int w = rand() % 255;
int b = rand() % 255;
int g = rand() % 255;
int ho =100;
int br = 100;
m_circleRect = QRect(x,y,ho,br);
QBrush brush(QColor(w,g,b));
painter.setBrush(brush);
painter.drawEllipse(m_circleRect);
mein problem ist hier das der x wert sich super schön nach jedem "neu" aufruf ändert ... alerding der y wert anscheinend mehr zeit brauch um sich zu änderen für mich ist das ein rätsel da ich doch beiden zahlen einen zufallswert liefer ... alerdings bewegt sich der kreis nicht von der y-geraden .... ich weiss das ist eigentlich c++ aber vieleicht könnt ihr mir ja hier auch helfen ...
zum anderen muss ich das hier machen um den mittelpunkt vom kreis zuberechnen was mich total verwirrt.
Code: Alles auswählen
if (e->button() == Qt::LeftButton){
QPoint pos = e->pos();
int x = pos.x();
int y = pos.y();
unsigned char r,g,b;
imageWidget->getRGB(x,y,r,g,b);
QString s = QString("%1").arg(y);
QRect circle = imageWidget->getCircleRect();
QPoint edge = circle.center();
QPoint circlePos;
circlePos.setX(circle.x()+50);
circlePos.setY(circle.y()+105);
double distanz = sqrt((double)(circlePos.x()-x)*(circlePos.x()-x)+(circlePos.y()-y)*(circlePos.y()-y));
if (distanz <= 50){
m_count++;
m_aim++;
QMessageBox::information(0,"",tr("daneben"));}
else{
QMessageBox::information(0,"",tr("daneben"));}
m_count++;
das ist jetzt meine abfrage ob ich den kreis getroffen habe mit einem klick oder nicht nach langem testen bin ich auf diese 2 werte gekommen circlePos.setX(circle.x()+50);
circlePos.setY(circle.y()+105);
ohne diese 2 additionen würde ich nicht den kreis treffen ... hat da einer ne erklärung ?!
mir ist noch ne "kleinigkeit" eingefallen ... wie kann ich ne abfrage machen die einen int wert verlangt die dann dem programm übergeben wird ?!? ...
dachte an einen button auf den ich klicke und dann popt ein eingabe fenster auf... stehe da bissel auf dem schlauch ^^