koordinatensystem mit 4 quadranten



  • hallo, ich erstelle über diese funktion ein koordinatensytem:

    dc->SetMapMode(MM_ISOTROPIC);
    	dc->SetWindowExt(UpperBorder.x, UpperBorder.y);
    	dc->SetViewportExt(rect.Width(), rect.Height());
    	dc->SetViewportOrg(center);
    	dc->MoveTo(center);
    	dc->SetPixelV(center, RGB(0,0,0));
    

    nur bin ich mir grade nicht sicher, wie das dann aussieht. UpperBorder ist ein CPOINT mit koordinaten, rect die grösse meines fensterbereiches, center der mittelpunkt. allerdings funktioniert das nicht so ganz, deshalb habe ich ein paar fragen:

    1. hat mein koordinatensystem überhaupt 4 quadranten (also hat die x-achse einen wertebereich von -UpperBorder bis UpperBorder)?
      2)wie funktioniert die umrechnung von logischen in geräteeinheiten, mein graph ist immer nur in einem kleinen bereich, die koordinaten stehen dabei in einem CPOINT Array. mit dieser funktion zeichne ich:
    int lauf = 0;		
    	CPen pen(PS_DASH, 10, RGB(0,0,0));
    	dc->SelectObject(&pen);
    	int size_array = GetArraySize();
    	//Koordinatenachsen zeichnen
    	CPoint upleft =	rect.TopLeft();
    	CPoint downright = rect.BottomRight();
    	dc->MoveTo(downright);
    	dc->Rectangle(rect);
    	dc->MoveTo(center);
    	dc->MoveTo(downright.x, center.y);
    	dc->LineTo(upleft.x, center.y);
    	dc->MoveTo(center.x, downright.y);
    	dc->LineTo(center.x, upleft.y);
    	//Koordinaten umrechnen
    	dc->LPtoDP(result_array, lauf);
    	//Graph zeichnen
    	while (lauf <= size_array)
    	{
    		dc->MoveTo(result_array[lauf]);
    		dc->SetPixelV(100 * result_array[lauf].x, 100 * result_array[lauf].y, RGB(0,0,255));
    		lauf++;
    	}
    

    vielen dank für eure hilfe,

    daniel


Anmelden zum Antworten