Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2000

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

Search the Archive

Re: Mathematica bug in Graphics3D ??

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

Axel Kowald wrote:
> 
> Hello,
> 
> I'm using Mathematica 4.0.1.0 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
package:

http://library.wolfram.com/packages/polygontriangulation/

After installing the package it works like this:

<< PolygonTriangulation`SimplePolygonTriangulation`

Show[TriangulateSimplePolygons3D[
    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]

This will show what you are probably expecting.

Greetings

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 ??