[MATLAB]: How would I mathematically and visually reproduce the 3D surface of the new King's Cross 'Western Concourse'?

StackOverflow https://stackoverflow.com/questions/13120220

  •  15-07-2021
  •  | 
  •  

Question

Anyone have any starting tips for me? I want to learn from this (ie Don't want to be lazy and have someone answer this for me).

I would like to develop my understanding of mathematical 3D surfaces. My own personal project is to produce a 3D surface/graph of the concourse structure in MATLAB.

I found a link with good pictures of its geometry here. I am not expecting to get it 100% perfectly but I'd like to come close!

At the end of this exercise I would like to have a mathematical definition of the geometry as well as a visual representation of the surface. This can involve cartesian equations, parametric equations, matrices, etc.

Any help would be very much appreciated!

Was it helpful?

Solution

To give some specific advice for MATLAB:

I would load in the 'section' image from the web page you have linked, and display this in a MATLAB figure window. You can then try plotting lines over the top until you find one that fits nicely. So you might do something like:

A = imread('~/Desktop/1314019872-1244-n364-1000x707.jpg');
imshow(A)
hold on
axis on

%# my guess at the function - obviously not a good fit
x = [550:900];
plot(x, 0.0001*x.^2 + 300)  

enter image description here

Of course, you might want to move the position of the origin or crop the picture and so on.

As an arguably better alternative to this trial-and-error method, you could trace the outline of the section (e.g by clicking points with something like ginput), and then use one of MATLAB's curve-fitting tools (e.g. fit) to fit a function to the data.

The final 3D shape looks to me (at a casual glance) to be a 3D revolution of the section shape around a central axis. Use of a cylindrical coordinate system could therefore be a good idea.

The final plotting of your 3D shape could be done with a function such as surf or mesh.

OTHER TIPS

I would start by defining a function that defines for each x, y coordinate whether there is a point z, and if so with which altitude.

The shape reminds me a bit of a log or a square root.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top