[Math question] Why do 3 non collinear points lie in a plane?

Pages: 12
But if we did not move D and left it on the same plane as A,B and C then obviously AB will be coplanar with line CD, same as AC to BD and so on, right?
Well, yes, because A, B, C, and D being coplanar in their original placement was the starting assumption.

With all that being said, again let's take the point D and move off the plane that A,B and C lie on. If we take three points A,B(both coplanar) and D(off the plane) then A,B and C are still coplanar as a plane can be places through any 3 points, right?
Yes. If a set of points is coplanar, every subset of it is also coplanar. This is because a plane is a set of points. If Points is a subset of Plane and FewerPoints is a subset of Points, then FewerPoints is a subset of Plane.
I think these come down to a gorps and snorks question :) (do they still do that nonsense on the SAT etc??)

say you have 8 points.
some groupings of 8 points are all on one plane.
but not all groupings of 8 points are all on one plane.
all groupings of 3 points are on one plane.


here again, lines are just easier to see it:
put 2 points anywhere in 2d or 3d space. Try to place them so you can't connect them with a straight line.
now put 3 points and do the same. You *can* put 3 points down that a line connects all 3. But not every set of 3 works, right? Same thing!

the laws/rules/etc in math are stated by what is necessary and complete and maybe some other word I don't recall. The IFF stuff (if & only if). It takes 3 points to make a plane. More than 3 points may not make a plane. Less than 3 points makes multiple planes. Therefore the rule will be stated that 3 points determine a plane, no more, no less. 4 points CAN determine a plane, but its not necessary nor required, and you can't make a rule about it, its conditional.
Last edited on
the laws/rules/etc in math are stated by what is necessary and complete and maybe some other word I don't recall.
Did you mean "necessary" and "sufficient"?
I definitely have a better understanding of what a plane is now, watching khan academies videos they don't go into the finer detail about what a plane is and it's properties. A 4 minute video isn't suffice imo.

I wish there was an online visualization tool, that allowed you to plot x amounts of points on an x,y,z axis and showed you if the points were coplanar but unfortunately and also surprisingly not such thing exists online. Maybe there is some free software that allows you to do this?
Last edited on
I have 4 points in (x,y,z) form, (10,10,5), (20,10,5), (30,10,5), (40,10,5)


This site ( http://www.ambrsoft.com/TrigoCalc/Plan3D/PointsCoplanar.htm ) is telling me the 4 points are not coplanar :s - https://ibb.co/KFkj3TW

here is the points visually - https://ibb.co/kc5Wygn

They certainly look coplanar to me, a flat surface can pass through all the 4 points to me visually. :/

*edit when I use this program from - https://www.geeksforgeeks.org/program-to-check-whether-4-points-in-a-3-d-plane-are-coplanar/

It tells me the points are coplanar, is this correct? it would seem like it to me
Last edited on

The det of the 4x4 matrix is 0, so they are coplanar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
x1 = 10;
y1 = 10;
z1 = 5;

x2 = 20;
y2 = 10;
z2 = 5;

x3 = 30;
y3 = 10;
z3 = 5;

x4 = 40;
y4 = 10;
z4 = 5;

A = [ x1 y1 z1 1 ;
      x2 y2 z2 1 ;
      x3 y3 z3 1 ;
      x4 y4 z4 1 ];

det(A)

0


Maybe the site is running into some floating-point issues.
Here is how they are calculating coplanarity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
function calcCoplanar(id) {
    var tmp = new Array();
    tmp[0] = new Array();
    tmp[1] = new Array();
    tmp[2] = new Array();
    var num = parseInt(id.replace("p", ""));
    var grp = parseInt(num / 3);
    var i, d;
    var vec = new Array(-1, -1, -1);
    var xn, yn, zn;
    var v1, v2, vt;
    var str;

    readData();
    clearData();
    var inputs = wCCinputs(ccInput);
    var colin = pointsCollinearCheck();

    if (colin) {
        //in case all points are collinear
        document.getElementById('planeEquation').innerHTML = "";
        document.getElementById('collinear').innerHTML = "The points are collinear (on the same line - they do not form a plane)";
        return;
    }
    
    if (inputs >= 3) {
        planeDefinition();

        //If 3 points entered calculate plane equation only
        A = round(determinant(replaceCol(matPlane, 0, vec)), ppl);
        if (A < 0) fac = -1; else fac = 1;
        A *= fac;
        B = round(determinant(replaceCol(matPlane, 1, vec)) * fac, ppl);
        C = round(determinant(replaceCol(matPlane, 2, vec)) * fac, ppl);
        D = round(det, ppl) * fac;

        document.getElementById('planeEquation').innerHTML = formatPlaneEqu(A, B, C, D, ppl, 1);
        document.getElementById('collinear').innerHTML = "The points are coplanar (3 points are always coplanar)";
    }
    else{
        document.getElementById('planeEquation').innerHTML = "";
        document.getElementById('collinear').innerHTML = "";
    }

    if (inputs >= 4) {
        //At least 4 inputs entered
        CCcoplanar = CCplane;
        str = "The points are coplanar";

        document.getElementById('collinear').innerHTML = "The points are coplanar";
        for (i = 0; i < inputs; i++) {
            var count = i * 3;
            if ((CCplane & Math.pow(2, i)) != Math.pow(2, i)) {
                xn = mata[i][0];
                yn = mata[i][1];
                zn = mata[i][2];

                d = (A * xn + B * yn + C * zn + D) / Math.sqrt(A * A + B * B + C * C);
                if (d != 0) {
                    document.getElementById('g' + i).innerHTML = round(d, ppl);
                    document.getElementById('g' + i).style.visibility = "visible";
                    str = "The points are not coplanar";
                }
                else {
                    CCcoplanar += Math.pow(2, i);
                }
            }
        }
        document.getElementById('collinear').innerHTML = str;
        highLightPlane();
    }
}


The calculation is producing a NaN at some point.
Both (A * xn + B * yn + C * zn + D) and Math.sqrt(A * A + B * B + C * C) are 0, so you have 0/0.

It seems the ambrsoft website's calculation is not defensive of certain degenerate cases like some 4 collinear points.
Last edited on
That makes sense, yeah I figured after running another program and getting a conflicting result than the original that the site I used probably didn't give the correct answer,

that's interesting, I remember learning about matrix determinants in school,

so are things like matrices multiplication and other operations related to things on the x,y,z plane? and I'm guessing GPUs must do matrix multiplication when rendering images or videos on displays?

Thanks Ganado
The points are obviously coplanar - they are on the same straight line! All of them have the same y and z coordinates.

One problem with detecting coplanarity is that most techniques will end up having to compare two floating-point numbers, and there's always a margin of floating-point inaccuracy there.
so are things like matrices multiplication and other operations related to things on the x,y,z plane?

they can be. Matrix multiply is used for many things from AI engines to controllers to 3d graphics. Its a very important tool for many things.


GPU do specific graphics things onboard, yes. One of the big ones: you can use a matrix to transform a 3-d object, moving it, rotating it, or both at once. This is done constantly in graphics, as are the normal generation (see the cool fast normal solver topic, the FISR algorithm topic).

Image and videos (not created from software scenes, just image files/video files) are usually just a bit dump to the screen. The most complex thing about either one is the compression algorithm used, which may or may not have hardware assistance and that may or may not be on the GPU.
Great insight Jonnin :) In terms of both computer science and the real world, why are planes so important, as described a plane is 2d, we live in 3 dimensions(actually 4 if you include time) so why the need for planes?
Do you draw in three dimensions, since you live in three dimensions, or do you draw on surfaces? Then you understand why 2D geometry is relevant.
We need planes as much as we need points and lines in geometry. Besides, string theory postulates many more than 4 dimensions in the physical world.

Of course none of this matters if the concepts of geometry of whatever dimension are an unf athomable mystery.
The vast majority of 3-d gaming is created by drawing smooth looking meshes of triangles (planes!) and then putting an image across the surfaces which will not pass microscopic inspection but looks perfect from a short distance away. Its kind of like how calculus approximates curves with a bunch of line segments, and so on.

you can draw a human head with hair by making a billionty curved lines. Or you can just draw a picture of hair with tricks to make it look 3d. Note that picture can mean 'frame' of an animation, as well, in these contexts.
Last edited on
FWIW, Calculus doesn't approximate curves with anything. It calculates the actual area under the curve using limits.
Correct. I said that poorly ... the pictures they draw to explain how it works use line segments as I described, but the actual math side is, as noted, not approximate.
Topic archived. No new replies allowed.
Pages: 12