Click here to Skip to main content
15,891,951 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am trying to use z-buffer algorithm to find the visible surface detection for my college computer graphics project.I have used following co-ordinate system that the positive x-axis to the right, the positive z-axis upward, and the positive y-axis forward on the screen. My maximum depth is 200 units.
Problem is that when I calculate the depth of all surface of cube I found the depth of back and front accurate but depth of other side is more than my maximum depth.
My code for calculating co-efficient of plane is
C#
public Coefficient_Of_Plane Coefficient_Value(_3Dpoint pt1, _3Dpoint pt2, _3Dpoint pt3)
       {
          // double Y = 0;
           Coefficient_Of_Plane pt;
           pt = new Coefficient_Of_Plane();
           pt.A = (pt2.z - pt3.z) * (pt1.y - pt2.y) - (pt1.z - pt2.z) * (pt2.y - pt3.y);
           pt.B = (pt2.x - pt3.x) * (pt1.z - pt2.z) - (pt1.x - pt2.x) * (pt2.z - pt3.z);
           pt.C = (pt2.y - pt3.y) * (pt1.x - pt2.x) - (pt1.y - pt2.y) * (pt2.x - pt3.x);
           pt.D = - pt1.x * (pt2.y * pt3.z - pt2.z * pt3.y) + pt1.y * (pt2.x * pt3.z - pt2.z * pt3.x) - pt1.z * (pt2.x * pt3.y - pt2.y * pt3.x);
           return pt;

       }


and finding the depth value is
C#
public double DepthValue(Coefficient_Of_Plane surface,int x,int y)
      {


          double z = 0;
          if (surface.B != 0)
              z = (-surface.A * x - surface.C * y - surface.D) / surface.B;
          return z;
      }

I need a help to solve this problem and I am also ready to post other part of code if required and further description of problem if my question is incomplete.
Posted
Comments
El_Codero 9-Mar-12 14:27pm    
Hm, sure your formula in DepthValue Method is right?
z = (-Ax - By - D) / C
Regards
smokindinesh 11-Mar-12 8:32am    
@Bjorn Ranft thanks for your comment.
I have solve my error . While finding depth the points x and y must be kept fixed
I have taken origin (x,y)=(0,0) as a fixed point.

1 solution

@Bjorn Ranft thanks for your comment.
I have solve my error . While finding depth the points x and y must be kept fixed
I have taken origin (x,y)=(0,0) as a fixed point.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900