Para un juego de ordenador (lo que significa que el origen está en la parte superior izquierda) necesito 12 puntos en forma equidistante en un círculo.
La curva debe ir también a través de los 3 puntos rojos se muestra a continuación:
Aquí es cómo estoy tratando de resolverlo:
Los puntos en que la curva debe tener las coordenadas:
x = R * cos(alpha + beta) + p
y = R * sin(alpha + beta) + q
El R
, beta
, p
y q
son desconocidas para mí, pero alpha
va de 0 a $\pi$/3 en 12 pasos y sé w
, h
y b
.
Y sé que la curva debe contener los 3 puntos rojos:
(0, h - 2b) when alpha is 0
(w/2, h - 3b) when alpha is pi/6
(w, h - 2b) when alpha is pi/3
Así que esto me da 6 ecuaciones a resolver:
0 = R cos(beta) + p
h - 2b = R sin(beta) + q
w/2 = R cos(pi/6 + beta) + p
h - 3b = R sin(pi/6 + beta) + q
w = R cos(pi/3 + beta) + p
h - 2b = R sin(pi/3 + beta) + q
Las ecuaciones anteriores deben proporcionar a me R
, beta
, p
y q
- a la derecha?
Y entonces yo podría poner mi 12 puntos (en realidad son puntos medios de un juego de cartas) mediante la ejecución de este bucle:
for (i = 0; i < 12; i++) {
card.x = R * Math.cos(i * Math.PI / 36) + p;
card.y = R * Math.sin(i * Math.PI / 36) + q;
}
Por desgracia, no sé cómo resolver el 6 ecuaciones anteriores (a excepción de la p
es, probablemente, w/2
).
Puede usted por favor me ayude o sugerir una mejor manera?
A continuación es la actual imagen de mi tarjeta de juego, donde estoy tratando de colocar la parte inferior de las tarjetas en una curva (alrededor del jugador avatar):
ACTUALIZACIÓN: he renunciado a la curva por el momento y trató de resolver la ecuación
y = px^2 + qx + r
para los 3 puntos y consiguió:
p = 4b / w^2
q = - pw
r = h - 2b
Esto me da bastante bien la colocación de la tarjeta:
Pero si alguien postea una solución completa para la curva, eso sería genial.
Mis habilidades matemáticas son demasiado oxidada y yo probablemente hacer algunos errores básicos mientras que la solución de...