[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 15 KB, 251x226, fuck_this_shit_cat.jpg [View same] [iqdb] [saucenao] [google]
12679647 No.12679647 [Reply] [Original]

Suppose I have a regular, convex 3D surface I can define with some coordinate x(θ,ϕ) and surface normal n(θ,ϕ). Half this surface is facing towards some unit vector, v(θ,ϕ) and half is facing away from it. I know I can determine whether some part of the surface is facing the vector or not by looking at whether v.n is less than (facing towards) or greater than (facing away from) 0. How would I go about trying to analytically (or even quasi-analytically) determine the centroid of each surface?

My first thought was to approach the problem numerically - just generating points on the surface, calculate the v.n values to separate the groups of points, and work out the average displacement vector for each group, but because the points aren't distributed uniformly the results get skewed depending on how many points fall on either side of the boundary, so that's out.

My second approach was to try using the v.n = 0 condition to find some analytic expression for θ(ϕ) and integrate or even numerically integrate x(θ,ϕ) over the range of ϕ for each surface. This approach half-worked. I found that after a few pages of algebra I could find an expression for θ(ϕ), but it seems to drift from the actual boundary point depending on value of v, so I'm not sure if this is just some mistake I made in my derivation, or if I'm missing some piece of the puzzle needed to make this approach work.

I'm crap at this kind of differential geometry stuff and it's frustrating the shit out of me, so if anyone has more experience with these kinds of problems, I'd appreciate any pointers or even just a fresh take on it.

>> No.12679731

>>12679647
You can only find a centroid for the subset of these surfaces that are continuous

>> No.12679774

>>12679647
Is centroid like center of mass?
Sounds like a problem for gausses law or stokes theorem. Other than that I don't know. What's this for?

>> No.12679864
File: 1.23 MB, 2478x809, physicistsneedporches.jpg [View same] [iqdb] [saucenao] [google]
12679864

>>12679731
The total surface is continuous (a spheroid) and both faces are continuous *up to* the edge of the v.n = 0 boundary.


>>12679774
>Is centroid like center of mass?
Same concept (I'm looking at charge in this particular case). The problem is a continuation of a research discussion from a few weeks ago - looking at the illumination of a particle (modeled as an ellipsoid) as it rotates. The discussion looked at several numeric options for determining which parts of the surface would be illuminated or in shadow (the v.n less than/greater than 0 method was the computationally simplest), but as I said the problem is that since there's not a easy way to uniformly distribute the points, the calculation gets skewed by the excess of points near the 'poles' of the spheroid.

Employing Gauss/Stokes isn't a bad idea, though I don't remember if there's any way to apply them to an open surface like these two bisected parts of a spheroid.

>> No.12679881

>>12679864
>I don't remember if there's any way to apply them to an open surface
Just close them lmao

>> No.12679923
File: 1.99 MB, 370x319, smart dog.gif [View same] [iqdb] [saucenao] [google]
12679923

>>12679881
I would think that would throw off the calculation of the centroid (to use the center of mass analogy, I don't think the center of mass of a glass bowl and the center of mass of a glass bowl with a glass lid are going to be the same). I suppose if the area of the surface you're closing it with is well defined you could subtract that off somehow, but I haven't come up with a way of defining the surface that would close it off.

>> No.12679930

>>12679647
To find the centroid [math](x_0, y_0, z_0)[/math] of a parametrized surface [math]\rho(\theta, \phi) = (x(\theta,\phi), y(\theta, \phi), z(\theta, \phi))[/math] you need to find a surface area A, integrate x, y and z over the entire surface and divide by A
So the formulas would be:
[eqn]
x_0 = \frac{1}{A}\int_{\phi=-\pi}^{\phi=\pi}\int_{\theta=-\frac{\pi}{2}}^{\theta=\frac{\pi}{2}} x(\theta, \phi)d\theta d\phi\\
y_0 = \frac{1}{A}\int_{\phi=-\pi}^{\phi=\pi}\int_{\theta=-\frac{\pi}{2}}^{\theta=\frac{\pi}{2}} y(\theta, \phi)d\theta d\phi\\
z_0 = \frac{1}{A}\int_{\phi=-\pi}^{\phi=\pi}\int_{\theta=-\frac{\pi}{2}}^{\theta=\frac{\pi}{2}} z(\theta, \phi)d\theta d\phi\\
[/eqn]

>> No.12680049
File: 15 KB, 1623x656, shadow.png [View same] [iqdb] [saucenao] [google]
12680049

>>12679930
That's the approach I'd initially planned on taking, but the issue is defining the bounds of integration, you're not integrating an entire surface, you're integrating up to the boundary defined by v.n = 0

Pic related is orthogonal projections of what I've got working so far. The grey shows the part of the surface that would be facing the light source (in this example v = {1,0,0}), and the red shows the solution for the boundary defined by {θ(ϕ),ϕ} is shown in red. It fits reasonably well for rotation about the two perpendicular axes (y and z in this ex.) but breaks down the moment there's any rotation about the parallel axis (the red region starts drifting and distorting and no longer 'fits' the boundary.

I'm wondering if it has to do with solving for the case of v = {1,0,0} as opposed to some arbitrary v, maybe it's losing important information for rotation about the x axis.

>> No.12680357

>>12679647
Do you think it's proper approach to integrate?

Maybe you should accept surface at is it and not try to calculate it up to centroit, and do finite elements calculation with whole surface.

>> No.12680362

>>12679647
3D print it and put it in aerodynamic tunnel.

>> No.12680411

>>12680357
That's more or less what I'd originally thought of doing - just having it generate an array of points at a range of various θs and ϕs, transform them, separate the points into 'towards' and 'away' populations and just calculate the mean of each sample. The problem is there's no simple way I can think of to uniformly populate the points, which means you end up with more points the closer you get to the poles of the spheroid. The consequence of that is that these extra points skew the average pretty significantly.

As an example - if instead of an oblate or prolate spheroid, you just do a plain sphere, it's pretty obvious what the surfaces will be - everything on the -x side will be illuminated and everything on the +x side will be shadowed, the boundary will simply be a circle of radius r at the origin in the y,z plane, and the center of mass/centroid/whatever of each hemispherical shell should remain the same regardless of the sphere's roll, pitch, and yaw.

... but if you actually do all that with a sphere using that method, the concentration of points at the poles causes the centroids to rotate even though the illuminated and shaded regions remain constant.

>> No.12680418

>>12680362
While this would be fun, it wouldn't really be helpful.

The goal is ultimately to simulate behavior with a range of spheroids with different a/b ratios (more prolate, more oblate) to determine the effect of particle irregularity on physical equilibrium.

>> No.12680500

>>12680418
Then only finite elements simulation is plausible.

Area of surface also does matter, keep that in consideration.

>> No.12681468

>>12680049
It looks like your close. It seems like the way to do it would be to work out the normal to the ellipse made by your boundary condition and then project your surface vector into that coordinate system. Not sure how you’d get that from your dot product condition though.

>> No.12682100

>>12680357
>>12680500
FEM is gonna suck balls if he's trying to simulate stuff over any large number of time steps. You'd have to construct a new pair of meshes for every step.