MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathematica bug in Graphics3D ??

  • To: mathgroup at
  • Subject: [mg22249] Re: Mathematica bug in Graphics3D ??
  • From: Martin Kraus <Martin.Kraus at>
  • Date: Sat, 19 Feb 2000 01:33:51 -0500 (EST)
  • Organization: Institut fuer Informatik, Universitaet Stuttgart
  • References: <88juec$>
  • Sender: owner-wri-mathgroup at

Axel Kowald wrote:
> Hello,
> I'm using Mathematica under NT4 and when I try:
> Show[Graphics3D[Polygon[{{2.5, Sqrt[3]/2, 0}, {3.5, Sqrt[3]/2, 0},
> {4, Sqrt[3], 0}, {3, 2*Sqrt[3], 0}, {2, 2*Sqrt[3], 0},
> {3, Sqrt[3], 0}} ]], Axes -> True]
> Mathematica draws a polygon with only 5 corners where the last point
> {3,Sqrt[3],0} is missing. Am I doing something wrong here or what is
> going on ?
> Many thanks
>                 Axel

Hi Axel,

your polygon is non-convex (check it by replacing Polygon by Line)
which is a problem for three-dimensional graphics in Mathematica. 
As explained in the book "Mathematica Graphics -
Techniques & Applications" by Tom Wickham-Jones in section 9.3
(Polygon Triangulation) on page 155:

"Since there are several methods [to triangulate polygons],
Mathematica chooses one that is simple and easy to understand. It joins
the first vertex to successive pairs of vertices around the edge."

I do not want to discuss this decision. However, it should be noted
that this method works consistently for non-flat polygons.

Unfortunately, this method does not produce the result you 
expected for your polygon. In order to get the expected result you 
should project the polygon into 2d, compute a standard triangulation 
of the projected polygon and use this triangulation for the 3d points.
Tom Wickham-Jones presents some code to do this in his book (included 
in the ExtendGraphics package in MathSource).

Another source of code to do this is my PolygonTriangulation

After installing the package it works like this:

<< PolygonTriangulation`SimplePolygonTriangulation`

      Polygon[{{2.5, Sqrt[3]/2, 0}, {3.5, Sqrt[3]/2, 0}, {4, Sqrt[3],
0}, {3, 
            2*Sqrt[3], 0}, {2, 2*Sqrt[3], 0}, {3, Sqrt[3], 0}}]]], 
  Axes -> True]

This will show what you are probably expecting.


Martin Kraus

  • Prev by Date: Re: pure functions (or not?)
  • Next by Date: Re: export graphics
  • Previous by thread: Re: Mathematica bug in Graphics3D ??
  • Next by thread: Re: Mathematica bug in Graphics3D ??