Items tagged with geometry geometry Tagged Items Feed

It is well known that  operating in  geometry  package when setting objects symbolically some inconveniences arise. The error occurs if you do not set limits on the parameters. I wrote the procedure for finding center and radius of the circumscribed circle, devoid of drawbacks:



local x1, y1, x2, y2, x3, y3, n;

uses geometry;

x1,y1:=op(a); x2,y2:=op(b); x3,y3:=op(c);


point(A,a), point(B,b), point(C,c);

if type(n,realcons) then triangle(T,[A,B,C]); circumcircle(cc,T,'centername'=OO);

return [coordinates(OO),radius(cc)]  else assume(n<>0);

triangle(T,[A,B,C]); circumcircle(cc,T,'centername'=OO);

simplify([coordinates(OO),radius(cc)]); fi;

end proc:


At initial startup procedure works correctly:

Circumcircle([x1,y1], [x2,y2], [x3,y3]);



But if you change the arguments of the procedure, an error occurs:

Circumcircle([x1,1], [x2,y2], [x3,y3]);


But if you run the procedure again with the same arguments, the error disappears:

Circumcircle([x1,1], [x2,y2], [x3,y3]);


What is the reason?


Let  us consider the general case of symbolic values C(xC,yC). I make use of the idea suggested by edgar in : no assumptions.

restart; with(geometry); point(A, 0, 0);
point(B, 1, 0);
point(C, xC, yC);
point(MA, (xC+1)*(1/2), (1/2)*yC);
point(MC, 1/2, 0);
point(MB, (1/2)*xC, (1/2)*yC);
point(E, (0+1+xC)*(1/3), (0+0+yC)*(1/3));# the center of mass
line(l1, x = 1/4, [x, y]);
The coordinates of the center of the first described circle are found as the solutions of the system of the equations of midperpendiculars.

midpoint(ae, A, E); coordinates(ae);

S1 := solve({x = 1/4, ((xC+1)*(1/3))*(x-(xC+1)*(1/6))+(1/3)*yC*(y-(1/6)*yC) = 0}, {x, y});

BTW, Maple can't create the midperpendiculars in this case.

point(O1, op(map(rhs, S1)));

Simple details are omitted in the above. The coordinates of the centers of the two next described circles are found similarly.
coordinates(midpoint(mce, MC, E));

S2 := solve({x = 3/4, ((-1/2+xC)*(1/3))*(x-5/12-(1/6)*xC)+(1/3)*yC*(y-(1/6)*yC) = 0}, {x, y});

point(O2, op(map(rhs, S2)));

coordinates(midpoint(bma, B, MA)); coordinates(midpoint(be, B, E));


S3 := solve({(xC-1)*(x-(xC+3)*(1/4))+yC*(y-(1/4)*yC) = 0, ((-2+xC)*(1/3))*(x-(4+xC)*(1/6))+(1/3)*yC*(y-(1/6)*yC) = 0}, {x, y});

point(O3, op(map(rhs, S3)));


Now we find the equation of the circumference which passes through O1, O2, and O3.

eq := a*x+b*y+x^2+y^2+c = 0:
sol := solve({eval(eq, S1), eval(eq, S2), eval(eq, S3)}, {a, b, c});

A long output can be seen in the attached .mw file.

eq1 := eval(eq, sol);

  Now we find (in suspense)  the coordinates of the next center and verify whether it belongs to the sircumference O1O2O3.

coordinates(midpoint(mac, C, MA)); coordinates(midpoint(ec, E, C)); S4 := solve({(xC-1)*(x-(3*xC+1)*(1/4))+yC*(y-3*yC*(1/4)) = 0, ((2*xC-1)*(1/3))*(x-(4*xC+1)*(1/6))+(2*yC*(1/3))*(y-4*yC*(1/6)) = 0}, {x, y});

 point(O4, op(map(rhs, S4)));

simplify(eval(eq1, S4));

                             0 = 0

Hope the reader will have a real pleasure to find the two residuary centers and to verify these on his/her own.





It is well known that the medians of a triangle divide it into 6 triangles.
It is less known that the centers of their circumscribed circles belong to one circumference as drawn below

This remarkable theorem  was proved in the 21st century! Unfortunately, I lost its source.
I can't prove this difficult  theorem by hand. However, I can prove it with Maple.
The aim of this post is to expose these proofs. Everybody knows that it is scarcely possible
to construct a general triangle with help of the geometry package of Maple.
Without loss of generality one may assume that the vertex A is placed at the origin,
the vertex B is placed at (1,0), and the vertex C(xC,yC). We firstly consider the theorem
in the case of concrete values of xC and yC.

restart; with(geometry):with(plots):
point(A, 0, 0);
point(B, 1, 0);
xC := 15*(1/10); yC := sqrt(3); point(C, xC, yC);
triangle(T, [A, B, C]);
median(mA, A, T, MA);
median(mB, B, T, MB);
median(mC, C, T, MC);
line(m1, [A, MA]);
line(m2, [B, MB]);
intersection(E, m1, m2);
triangle(AEMB, [A, E, MB]);
circumcircle(c1, AEMB, 'centername' = C1);
circumcircle(c2, triangle(CEMB, [C, E, MB]), 'centername' = C2);
circumcircle(c3, triangle(CEMA, [C, E, MA]), 'centername' = C3);
circumcircle(c4, triangle(BEMA, [B, E, MA]), 'centername' = C4);
circumcircle(c5, triangle(BEMC, [B, E, MC]), 'centername' = C5);
circumcircle(c6, triangle(AEMC, [A, E, MC]), 'centername' = C6);
circle(CC, [C1, C2, C3]);
IsOnCircle(C4, CC);

IsOnCircle(C5, CC);
IsOnCircle(C6, CC);
display([draw([T(color = black), mA(color = black), mB(color = black), mC(color = black), C1(color = blue), C2(color = blue), C3(color = blue), C4(color = blue), C5(color = blue), C6(color = blue), CC(color = red)], symbol = solidcircle, symbolsize = 15, thickness = 2, scaling = constrained), textplot({[-0.5e-1, 0.5e-1, "A"], [.95, 0.5e-1, "B"], [xC-0.5e-1, yC+0.5e-1, "C"]})], axes = frame, view = [-.1 .. max(1, xC)+.1, 0 .. yC+.1]);

This can be done as a procedure in such a way.

restart; SixPoints := proc (xC, yC) geometry:-point(A, 0, 0); geometry:-point(B, 1, 0); geometry:-point(C, xC, yC); geometry:-triangle(T, [A, B, C]); geometry:-median(mA, A, T, MA); geometry:-median(mB, B, T, MB); geometry:-median(mC, C, T, MC); geometry:-line(m1, [A, MA]); geometry:-line(m2, [B, MB]); geometry:-intersection(E, m1, m2); geometry:-triangle(AEMB, [A, E, MB]); geometry:-circumcircle(c1, AEMB, 'centername' = C1); geometry:-circumcircle(c2, geometry:-triangle(CEMB, [C, E, MB]), 'centername' = C2); geometry:-circumcircle(c3, geometry:-triangle(CEMA, [C, E, MA]), 'centername' = C3); geometry:-circumcircle(c4, geometry:-triangle(BEMA, [B, E, MA]), 'centername' = C4); geometry:-circumcircle(c5, geometry:-triangle(BEMC, [B, E, MC]), 'centername' = C5); geometry:-circumcircle(c6, geometry:-triangle(AEMC, [A, E, MC]), 'centername' = C6); geometry:-circle(CC, [C1, C2, C3]); return geometry:-IsOnCircle(C4, CC), geometry:-IsOnCircle(C5, CC), geometry:-IsOnCircle(C6, CC), geometry:-draw([CC(color = blue), C1(color = red), C2(color = red), C3(color = red), C4(color = red), C5(color = red), C6(color = red), T(color = black), mA(color = black), mB(color = black), mC(color = black), c1(color = green), c4(color = green), c2(color = green), c3(color = green), c5(color = green), c6(color = green)], symbol = solidcircle, symbolsize = 15, thickness = 2) end proc;
SixPoints(1.5, 1.2);

true, true, true, PLOT(...)
 SixPoints(1.5, 1.2)[4];


To be continued (The general case will be considered in  part 2 .).




Good afternoon sir.


I am working on problems related to functions which require dynamic geometry program or

the Geometers sketch pad. I request to you to kindly suggest me with regard to the above cited query.



With thanks & Regards



Assistant Professor in Mathematics

SR International Institute of Technology,

Hyderabad, Andhra Pradesh, INDIA.

Geometry (Circle)...

January 29 2014 yangtheary 60

Let OA=OB=OC=R=3,AB=3√2 and BC=2√2 .Find AC?

In geometry 3D, I have four vertices A(x1,y1,z1), B(x2,y2,z2), C(x3,y3,z3) and D(x4,y4,z4) of a tetrahedron. How to check a point P(x0,y0,z0) inside, outside or lie on  tetrahedron ABCD?

Dear Mapleprimes members,

I am trying to understand some known classical theorems of geometry (thales intersection thm, ceva, menelaus ) from the perspective of affine geometry and projective geometry.(my paper/pencil work is ok.. But I would like to use  Maple to visualize -if possible - geometrically some theorems and properties in a graph)

How could I do it in maple? Where may I get some examples?

thank you,



Good morning sir.


I request your kind support to the above cited query.



With thanks & Regards



Assistant Professor in Mathematics

SR International Institute of Technology,

Hyderabad, Andhra Pradesh, INDIA.

Ive been given a task to write a fuction that will print true/false to if a given line will intersect a triangle given the co-ordinates of the vertices. 
I have a general idea on what needs to be done mathmaticly, but i have poor maple skills and the syntax is killing me.
I would appreciate some help in this regard.



Ok so my problem is that I need to write a function which produces the three inequalities defining a triangle given the 3 points that form its vertices, then with the 4th point supplied to the function I need the function to print false if the 4th point satisfies less than 2 of these inequalities and true if it satisfies more than 2 of these inequalities. Can anybody help me with this? On a previous post I obtained part of the function that produces the triangle, but the 2 inequalities part was not solved.

Thanks for your time


I don't know how to write a function that determines whether a non-zero vector intersects a triangle with given vertices. If anybody could help me write a function that satisfies this so that the function returns true if the vector spanning the line intersects the triangle and returns false if it doesn't I would be greatly appreciative.


How to find S^3 : S^2*T : S*T^2 : T^3


How to find X*Z-Y^2, Y*W-Z^2, X*W - Y*Z

okay so i have to write a maple function that decides wheter a line given by a vector that spans it intersects a triangle with given vertices. 

an example of what it should look it is 

ISC([[0,0],[10,10],[10,10]],[2,1]) returns true

ISC([[0,0],[10,10],[10,0]],[-2,1]) returns false


thanks in advance.  i'm just having severe problems with writing functions and what not as you can tell. anyway, Thanks!!

okay so the question i have to answer is "write a maple function that computes the area of a triangle in the plane from the coordinates of the vertices"  

ive gotten this far 



triangle(ABC, [point(A, 0, 0), point(B, 2, 0), point(C, 1, 3)]);

area(ABC);    3


but how can i write so when you type say AA([[0,0],[10,10],[10,0]])  it returns  50?  (AA being the function name)


Thanks in advance to whoever helps.

The question was "Let X be the random variable uniformly distributed in the disk centered at the origin O(0,0) with radius 1 and let Y be the random variable uniformly distributed in the square having its vertices A(6,-1), B(9,-2), C(8,-5), and E(5,-4). What is the PDF of the distance between X and Y? Is it possible to find that with Maple?"
Having a long think about the topic, I draw the conclusion that the exact closed form of the PDF/CDF, even the one can be found, would be useless because of its complexity.
Thus, an approximate formula for the CDF/PDF under consideration is a proper way. That formula can be derived in such a way. First,rotating the picture, we may consider the square having its sides horizontal or vertical: K((1/5)*sqrt(1410)-(1/2)*sqrt(10),1/sqrt(10)), L((1/5)*sqrt(1410)+(1/2)*sqrt(10),1/sqrt(10), M((1/5)*sqrt(1410)+(1/2)*sqrt(10),1/sqrt(10)-sqrt(10)), Q((1/5)*sqrt(1410)-(1/2)*sqrt(10),1/sqrt(10)-sqrt(10)). The geometry behind that is omitted.
We randomly choose a point P1 belonging to the square [-1,1] x [-1.1]. If the one belongs to the disk {(x,y):x^2+y^2 <=1}, then we randomly choose a point P2 from the square [K,L] x [Q,L]. Next, we calculate the distance between P1 and P2 (The  LinearAlgebra[Norm] command is used to this end.) and add it to the set S.This is repeated 2*10^4 times.

Converting S to an Array A, we constuct the empirical distribution X by A and find its mean mu and standard deviation sigma.



Let us compare the obtained empirical distribution and the normal distribution with the parameters mu and sigma.

The plot suggests a good fit between these. However, it is only semblance. Applying the Kolmogorov-Smirnov test (for example, see
), we  calculate



while the critical value equals 1.358098639 at the level 0.05. Thus, the hypothesis about the concordance should be rejected.

Also we draw the approximation to the PDF:

1 2 3 4 5 Page 1 of 5