[SOLVED][MFC][CDC] Rysowanie lini, wyrkesów

0

Witam !

Piszę program do rysowania wykresów liniowych. Używam klasy CDC jednak mam problem. W zasadzie to wykresy rysują się jak chcą. Funkcje stałe spoko, natomiast reszta - rosnące w niektórych przypadkach malejąco się rysują i odwrotnie. Myślałem, że mam skopany konstruktor klasy prosta, jednak nie, prawidłowo określa wzór ( z 2 punktów ) a mimo to rysuje fatalnie, przykład :

CPoint a,b;

	prosta wykres(2,4,4,2);
	pkt_skr P;
	P=wykres.wyznacz();
	
	a.x=P.P.X+100;  //a.x=(-179)
	a.y=P.P.Y+100;  //a.y=299

	b.x=P.D.X+100; //b.x=300
	b.y=P.D.Y+100; //b.y=(-180)

	rysowanie->MoveTo(a);
	rysowanie->LineTo(b);

czyli funkcja powinna być malejąca a wychodzi :

user image

co moim zdaniem nie jest malejące. Ma ktoś pomysł dlaczego źle rysuje skoro punkty wyznacza dobre ?

0

@javauser z tym, że post usunął o_0 ?

CDC *rysowanie=GetDC();

A potem przesuwam się do CPointów i robie linie. Coś jeszcze nie jesne jak tego używam ? Masz pomysł gdzie błąd ?

0

Sorry za poprzedni komentarz, nie wczytałem się.

Dobrze rysuje. Układ współrzednych w oknach Windows jest odwrócony. Dodatnie Y będą na dole. Punkt 0,0 jest w lewym górnym rogu.

0

Pomnożyłem współrzędne razy -1 i nadal tak się to prezentuje jakaś sugestia ? Dodatkowo jest opcja przesunięcia środka ?

EDYTA--

Zrobiłem generalnie to tylko Y jest odwrotnie a przyjąłem, że X także. No ale jest pomysł na przesunięcie środka w inne miejsce, i nie mówię tutaj o skalowaniu przez dodawanie pikseli do wyniki ?

0

sprawdź funkcję CDC::SetViewportOrg

0

Dzięki bardzo, o to chodziło, masz plusa ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1