Find Circum Center of Three point of Triangle [Not using Compass]

前端 未结 2 1735
终归单人心
终归单人心 2021-01-15 05:27

I am trying to find circumcenter of Given Three point of Triangle……..

NOTE: all these three points are with X,Y and Z Co-Ordinate Means point

2条回答
  •  被撕碎了的回忆
    2021-01-15 06:07

    First of all, you need to make sure that points are not collinear. i.e. do not lie in the same line. For that you need to find the direction cosines of the lines made by three points, and if they have same direction cosines, halt, you can't get circle out of it.

    For direction cosine please check this article on wikipedia.

    (A way of finding coordinate-geometry and geometry -- based on the theorem that, a perpendicular line from center of circle bisects a chord)

    1. Find the equation of the plane.

      equation of the plane

      This equation must reduce to the form

      enter image description here

      and the direction cosines (of the line perpendicular to plane determines the plane), so direction cosines of the line perpendicular to this line is

      given by this link equations -- 8,9,10 (except replace it for l, m, n).

    2. Find the equation of the lines (all three) in 3-d
      (x-x1)/l=(y-y1)/m=(z-z1)/n (in terms of direction cosines) or
      (x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1)

    3. Now we need to find the equation of line

      a) this perpendicular to the line, from 2 (let l1, m1, n1 be direction cosines of this line)

      b) must be contained in place from 1 (let l2, m2, n2 be direction cosines of this line perpendicular to plane)

    4. Find and solve (at least two lines) from 3, sure you will be able to find the center of the circle.

    5. How to find out equation ??? as we are finding the circum-center, we will get our points (i.e. it is the midpoint of the two points) and for a) we have

      l1*l+m1*m+n1*n = 0 and l2*l+m2*m+n2*n = 0 where l, m, n are direction cosines of our, line, now solving this two equation, we can get l, m interms of n. And we use this found out (x1,y1,z1) and the value of l, m, 1 and we will have out equation.

    The other process is to solve the equation given in this equation

    https://stackoverflow.com/questions/5725871/solving-the-multiple-math-equations

    Which is the deadliest way.

    The other method is using the advantage of computer(by iteration) - as I call it (but for this you need to know the range of the coordinates and it consumes lot of memory)

    it's like this (You can make it more precise by incrementing at 1/10) but certainly bad way.

    for(i=minXrange, i>=maxXrange; i++){
      for(j=minYrange, j>=maxYrange; j++){
        for(i=minZrange, i>=maxZrange; k++){
          if(((x1-i)^2 + (y1-j)^2 + (z1-k)^2) == (x2-i)^2 + (y2-j)^2 + (z2-k)^2) == for z)){
            return [i, j, k];
          }
        }
      }
    }
    

提交回复
热议问题