F(x, y) describing a distorted 3D Gaussian bell

  • Context: Undergrad 
  • Thread starter Thread starter corpsinhere
  • Start date Start date
  • Tags Tags
    3d Bell Gaussian
Click For Summary
SUMMARY

The discussion focuses on creating a distorted 3D Gaussian bell shape, specifically an egg-shaped function represented as f(x, y) = e^{-(Ax^2 + Bxy + Cy^2)}. Participants suggest using the bivariate normal distribution to achieve distortion and rotation, while emphasizing the need for a non-symmetrical shape. The final solution involves a combination of a modified cosine curve and an exponential decay function, resulting in a unique 3D shape suitable for procedural generation of islands.

PREREQUISITES
  • Understanding of Gaussian functions and their properties
  • Familiarity with bivariate normal distribution
  • Knowledge of 3D coordinate transformations and rotations
  • Basic skills in procedural generation techniques, particularly using Perlin noise
NEXT STEPS
  • Research the bivariate normal distribution and its applications in shape distortion
  • Explore 3D transformations and rotations of functions in mathematical modeling
  • Investigate the Crystal Ball function and its potential for creating non-symmetrical shapes
  • Learn about procedural generation techniques using Perlin noise for terrain modeling
USEFUL FOR

Mathematicians, computer graphics developers, and game designers interested in procedural generation and shape manipulation for realistic terrain modeling.

corpsinhere
Messages
6
Reaction score
3
I am new to these forums - if I have posted in the wrong place please let me know.
Standard 3D Gaussian bell: z = e^-(x^2) * e^-(y^2)
From along the z-axis this looks "round".
I would like a generalized f(x, y) which would look egg-shaped from above - possibly quite distorted..
I thought at first that this would be easy - hours of experimentation later I have a new respect for this problem. I hope someone finds a simple solution - I would love to have missed something simple!
Thanks,
Broos
 
Last edited:
  • Like
Likes   Reactions: Delta2
Mathematics news on Phys.org
Basically you need a function of the form ##f(x,y) = e^{-( Ax^2 + Bxy + Cy^2)}##. Look up "bivariate normal distribution" , "bivariate gaussian distribution", or "multivariate normal distribution".
 
That is super-cool, and will allow me to squish and rotate the bell; however, all the resultant shapes are still bilaterally symmetric. Not so much egg-shaped as oval. I would very much like to find a way of producing a 3D shape with a 2D cross-section similar to this:
https://www.screencast.com/t/ztmJfYS2Gen0

Looks like e^-(1*ln(x)2+ 1*ln(y)2)
get closer - from the side it looks like this: https://www.screencast.com/t/ZfDcDhGiTj
but from the top it looks sqare-ish: https://www.screencast.com/t/wV5Oz1G7
 
Last edited:
It's not clear from the picture what you want. In general you can easily distort a 2-d Gaussian so that the cross section looks like an ellipse. In this case, set up the ellipse and determine its center and the two axes. These then can be used for the 2-d Gaussian exponent.
 
Something like the Crystal Ball function?

In general you can rotate your function by an angle ##\phi## by setting ##x' = \cos(\phi)x + \sin(\phi) y## and ##y' = \cos(\phi)y - \sin(\phi)x##.
 
mathman said:
It's not clear from the picture what you want. In general you can easily distort a 2-d Gaussian so that the cross section looks like an ellipse. In this case, set up the ellipse and determine its center and the two axes. These then can be used for the 2-d Gaussian exponent.
@mathman - actually I am specifically *not* looking for a z-ward cross-section that looks like an ellipse - the shape I am looking for is distorted so that the cross-section looks like an exaggerated egg: one end narrow, the other wide. More like you took a regular Gaussian bell and smudged it in one direction.
 
mfb said:
Something like the Crystal Ball function?

In general you can rotate your function by an angle ##\phi## by setting ##x' = \cos(\phi)x + \sin(\phi) y## and ##y' = \cos(\phi)y - \sin(\phi)x##.
@mfb - Oh that is excellent! I am not sure how to generalize it to a 3D shape; if we simply rotate around the maximum then our shape again becomes symmetrical. As in my reply to @mathman, the shape should look "like you took a regular Gaussian bell and smudged it in one direction."

FYI the way in which this will be used:
I am making procedurally generated islands. The base is Perlin noise. I am looking for a family of shapes to distort, rotate, and overlap to create an envelope over the Perlin noise. The egg, or teardrop z-ward outline is meant to roughly simulate arms of a central mountain system; the off-central maximum with exponential falloff should leave a rough, pleasing edge.
Just for fun here is an earlier attempt using Perlin noise and many overlapping Sinwaves: https://www.screencast.com/t/2w6unMYt9i7
Ty!
 
A Crystal Ball in one dimension, a Gaussian shape in the other one will give some sort of egg-shaped peak.
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 8 ·
Replies
8
Views
909
Replies
17
Views
3K
  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 11 ·
Replies
11
Views
1K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 6 ·
Replies
6
Views
3K