Witam, mam do napisania konkretny program, zgaduję, że nie jest on jakiś wybitnie trudny. Chodzi o to, że mam kwadrat 300x300 i wybieram 2 punkty w tym kwadracie. Układ współrzędnych zaczyna się oczywiście od punktu (0,0) (lewy górny wierzchołek) i kończy na punkcie (300,300) (prawy dolny wierzchołek). Po wybraniu dwóch punktów muszę utworzyć prostą przechodzącą przez te dwa punkty. Z tym chyba też sobie poradziłem, nie zagłębiajmy się w to. Teraz ostatnia część. Muszę zliczyć wszystkie piksele osobno po jednej i po drugiej stronie tej prostej i własnie nie mogę wpaść na to jak sobie z tym poradzić. Byłby ktoś skłonny pomóc? W linijkach 19 i 20 są dwie nierówności i chcę zliczyć te piksele. Świstek na razie wygląda tak:
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int main()
{
int xa, ya, xb, yb, x, y, A, B, C;
cout<<"Podaj odcieta punktu A z przedzialu [0,299]"<<endl;
cin>>xa;
cout<<"Podaj rzedna punktu A z przedzialu [0,299]"<<endl;
cin>>ya;
cout<<"Podaj odcieta punktu B z przedzialu [0,299]"<<endl;
cin>>xb;
cout<<"Podaj rzedna punktu B z przedzialu [0,299]"<<endl;
cin>>yb;
A=(ya-yb)/(xa-xb); // x1!=x2
B=-1; // b=(ya(xa-xb))/(xb(ya-yb))
C=(ya*(xa-xb))/(xb*(ya-yb));
//Ax+By+C>0
//Ax+By+C<0
return 0;
}