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

Discussion Overview

The discussion revolves around finding a generalized function f(x, y) that describes a distorted 3D Gaussian bell shape, specifically one that appears egg-shaped from above. Participants explore various mathematical forms and transformations to achieve this distortion, with a focus on applications in procedural generation of landscapes.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • Broos introduces the problem of creating a distorted 3D Gaussian bell and expresses difficulty in finding a simple solution.
  • Some participants suggest using a function of the form f(x,y) = e^{-(Ax^2 + Bxy + Cy^2)} to allow for distortion and rotation.
  • Others note that while this approach can create various shapes, the results remain bilaterally symmetric rather than achieving the desired egg shape.
  • One participant proposes using the Crystal Ball function and discusses the possibility of rotating the function to achieve the desired shape.
  • Another participant emphasizes the need for a shape that appears smudged in one direction, rather than symmetrical, to resemble an exaggerated egg shape.
  • Broos describes the intended application of the shape in generating procedural islands using Perlin noise, aiming for a family of shapes that can overlap and create a natural landscape.
  • Some participants suggest that combining a Crystal Ball function in one dimension with a Gaussian shape in another could yield an egg-shaped peak.
  • Broos shares a modified cosine curve as a potential solution for achieving the desired shape.

Areas of Agreement / Disagreement

Participants express various approaches to the problem, but there is no consensus on a single solution. Multiple competing views and methods are presented, and the discussion remains unresolved regarding the best way to achieve the desired distorted shape.

Contextual Notes

Participants highlight the challenge of creating a non-symmetrical shape from a Gaussian function, indicating limitations in the existing mathematical forms and transformations discussed. The specific requirements for the shape's cross-section and its application in procedural generation add complexity to the problem.

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
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 19 ·
Replies
19
Views
2K
  • · Replies 8 ·
Replies
8
Views
1K
Replies
17
Views
3K
  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K