The GNU 3DLDF Ellipsoids Page

Author: Laurence D. Finston

This copyright notice applies to the text and source code of this web site, and the graphics that appear on it. The software described in this text has its own copyright notice and license, which can be found in the distribution itself.

Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The Free Software Foundation

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of this license is included in the file COPYING.TXT

Last updated: April 29, 2006


Table of Contents

Top
Introduction
Related_Cuboids
Classifying Points with Respect to an Ellipsoid
Intersections
Ellipsoid–Linear Path
Ellipsoid–Plane
Contact

Back to top
Back to Quadric Surfaces page
Back to main page

Introduction

2005.10.31.
I've now added the data type ellipsoid to the 3DLDF language. It corresponds to the type class Ellipsoid in the C++ code.

[Ellipsoid 1]

Ellipsoid


Back to contents
Back to top
Back to Quadric Surfaces page
Back to main page

Related Cuboids

2005.12.07.
I've now added parser rules and functions for finding the enclosing cuboid of an ellipsoid, i.e., the smallest cuboid that contains the ellipsoid. Finding the inscribed cuboid of an ellipsoid, i.e., the largest cuboid that fits into an ellipsoid, is more difficult. I don't yet know how to do this.

The 3DLDF code for generating the following four images is in elpsd_02.ldf.


[Ellipsoid 2]

Perspective Projection


[Ellipsoid 3]

Parallel Projection, X-Z Plane


[Ellipsoid 4]

Parallel Projection, X-Y Plane


[Ellipsoid 5]

Parallel Projection, Z-Y Plane


Back to contents
Back to top
Back to Quadric Surfaces page
Back to main page

Classifying Points with Respect to an Ellipsoid

points can be classified according to their position with respect to a ellipsoid by using the location operator:


ellipsoid E;
set E with_center origin with_axis_x 24 with_axis_y 16 with_axis_z 10
      with_divisions_x 8 with_divisions_y 8 with_divisions_z 2
      with_point_count 64;
point p[];
p0 := (1, 2, 1);  %% Inside.
p1 := (4, 9, 0);  %% Outside.

ellipse e;
e := get_ellipse 3 E;

p2 := get_point 60 e; %% On the surface.

message "p0 location E:";
show p0 location E;

message "p1 location E:";
show p1 location E;

message "p2 location E:";
show p2 location E;

location returns one of the following numerical values:

0: The point lies on the surface of the ellipsoid.
1: The point lies within the ellipsoid.
-1: The point lies outside the ellipsoid.
INVALID_NUMERIC: An error occurred.

In the following image, p0 lies inside the ellipsoid, p1 outside it, and p2 on its surface. The complete 3DLDF code for generating this image can be found in elpsd_06.ldf.

[Ellipsoid 6]


Back to contents
Back to top
Back to Quadric Surfaces page
Back to main page

Intersections

The Intersection Points of an Ellipsoid and a Linear Path

2005.12.09.
The following four images illustrate the intersections of an Ellipsoid and a linear Path. The 3DLDF code for generating these images is in elpsd_13.ldf.

[Ellipsoid-Linear Path Intersection 1]




[Ellipsoid-Linear Path Intersection 2]




[Ellipsoid-Linear Path Intersection 3]




[Ellipsoid-Linear Path Intersection 4]


Back to contents
Back to top
Back to Quadric Surfaces page
Back to main page

The Intersection Points of an Ellipsoid and a Plane

2005.12.15.
The routine for finding the ellipse that represents the intersection of an ellipsoid and a plane.

The 3DLDF code for generating the following four images is in elpsd_17.ldf.




[Ellipsoid-Plane Intersection 1]

Perspective Projection




[Ellipsoid-Plane Intersection 2]

Parallel Projection, X-Z Plane




[Ellipsoid-Plane Intersection 3]

Parallel Projection, X-Y Plane




[Ellipsoid-Plane Intersection 4]

Parallel Projection, Z-Y Plane


Back to contents
Back to top
Back to Quadric Surfaces page
Back to main page