How to find the depth of a pixel using two x y and z coordinates

157 Views Asked by At

I am working on z buffering with lines, and I am trying to find the depth of a certain pixel. Here is my line drawing code:

void l(int x1, int y1, int z1, int x2, int y2, int z2, int cl)
{
    int deltax = x2 - x1; // The difference in the x's
    int deltay = y2 - y1; // The difference in the y's
    int m = deltay / deltax; // The slope of the line (with deltax > 0)
    for (int x = 0; x <= deltax; x++)
    {
        int y = m * x; // Calculate the y-value
        int xcalc = x + x1;
        int ycalc = round(y) + y1;
        color[xcalc][ycalc].c = cl; // Draw the current pixel
    }
}

and here is my struct and color variable:

struct distancecolor { //c = color, d = depth
    int c;
    float d;
};
distancecolor color[250][250];

d = depth of pixel and c = color of pixel, stored from 1-9, because it is a custom rendering engine. All I want to do is take in x1, y1, and z1, and then use x2, y2, and z2 with an equation to find the distance from 0 to x, or the pixel being placed, on the line. Ask me for any other needed information.

0

There are 0 best solutions below