18 votos

Fórmula matemática para generar una curva de estilo Chino techo

Quiero crear un estilo Chino techo curvo mediante programación, algo así como en la parte derecha de esta imagen:

Chinese roof

Como se ve en la imagen, el techo parece tener cuatro segmentos curvos, que se cruzan en las diagonales.

Agradecería una fórmula como punto de partida, donde puedo modificar los parámetros.

14voto

Andrew Puntos 140

Una (más bien áspero) punto de partida es la siguiente superficie, basado en la curva de Lamé:

$$\begin{align*}x&=v|\cos\,u|^p \cos\,u\\y&=v|\sin\,u|^p \sin\,u\\z&=\frac{hv}{c^2}(v-2c)\end{align*}$$

donde $p > 1$, $h,c > 0$ son parámetros ajustables, $0 \leq u \leq 2\pi$, e $v$ rangos de valores no negativos.

He aquí un ejemplo, con $p=2$, $c=3$, $h=2$, y $0 \leq v \leq 4$:

fake Chinese roof

12voto

Andrew Jones Puntos 1134

No estoy seguro de lo que usted está buscando exactamente, pero para mí este techo que realmente se parece a una pirámide a la que se añade la parte inferior de una esfera: $$z=H - \max(\lvert x\rvert,\lvert y\rvert) + R - \sqrt{R^2-x^2-y^2},$$ donde $H$ es la altura del centro del techo, y $R$ es el radio de esta supuesta esfera, que definitivamente se puede ajustar.

enter image description here

En el ejemplo anterior, elegí $x\in\{-1,1\}$$y\in\{-1,1\}$, así que por supuesto $R$ no debe ser menor que $\sqrt{2}$, pero el límite depende de los rangos que usted elija para $x$$y$.

8voto

Andrew Puntos 140

Pensé que podría mejorar en la primera respuesta que me dieron; ajustar un poco más con el $z$-componente me llevó a las ecuaciones paramétricas

$$\begin{align*}x&=v|\cos\,u|^p \cos\,u\\y&=v|\sin\,u|^p \sin\,u\\z&=\frac{hv}{c} \left(\left(\frac{v}{c}+2f-2\right)\cos^2 2u-2f\right)\end{align*}$$

donde $f > 0$ es un parámetro ajustable.

Aquí es el caso $p=1$, $c=9/10$, $h=1/2$, $f=2/3$, y $0 \leq v \leq 3/2$:

improved Chinese roof

Yo derivados de estas nuevas ecuaciones de partida con las ecuaciones paramétricas de un cono, en sustitución de la circular secciones transversales con Lamé curva de secciones transversales, y el ajuste de la $z$-componente, que el barrido de rayos interpola linealmente entre una línea entre las esquinas) y una parábola (en las esquinas).

1voto

Jan Puntos 297

\begin{align} x &= \frac{u+v}{2}\\ y &= \frac{u-v}{2}\\ z &= -0.3 \sin { ((\frac{|u+v|}{2} + \frac{|u-v|}{2})(\frac{|u+v|}{2} + \frac{|u-v|}{2}+1) \frac{\pi}{2} }) \end{align} \begin{align} -1 < u < 1, -1 < v < 1 \end{align}

Drawn with Gnuplot (I hope you can plot a better one)

De Lado:

Side

Edit: tal vez, esta muestra mejor: gnuplot2

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: