2 votos

Evitar colores consecutivos similares para un gráfico circular

Antecedentes

Calcular los colores de las cuñas del gráfico circular. Considere:

$$ \begin{align} d(n)&=\frac{\theta}{t}\times n\\ \end{align} $$

Dónde:

  • $\theta$ son los grados de un círculo (360)
  • $t$ es el número total de cuñas (puede ser impar), y $0 \leq t \leq \theta$
  • $n$ es el número de la cuña, y un número entero
  • $d(n)$ es el tono calculado asignado a una cuña

Para $t=12$ y $n=\{1,2,3,...,t\}$ el cálculo en Espacio de color LCH produce:

Pie Chart

Problema

Los colores similares son adyacentes, lo que no es deseable.

Intercambio de colores

Algorítmicamente, las cuñas se pueden intercambiar. Cuando el número de cuñas, $n$ está en paz:

$$ \text{if}\, n \leq \frac{t}{2} \text{, then}\, n=n+\frac{t}{2} \text{; otherwise,}\, n=n-\frac{t}{2} $$

Esto podría funcionar, pero me pregunto si hay una forma mejor.

Pregunta

¿Qué cálculo único (utilizando aritmética simple, si es posible) para $d(n)$ ¿Impedirían los colores adyacentes similares?

1voto

marco trevi Puntos 1162

Dado $t$ colores y $n$ en $\{1,2,...,t\}$ Entonces:

$$ \begin{align} t_e&=t+\left(1-\left(t\,\%\,2\right)\right)\\ n_a&=\left[(n-\left(t\,\%\,2\right))\left\lfloor\frac{t}{2}\right\rfloor\,\%\,t_e\right]+\left(t\,\%\,2\right)\\ d(n_a)&=\frac{\theta}{t}\times n_a\\ \end{align} $$

El suelo ( $\lfloor\,\rfloor$ ) y el módulo ( $\%$ ) se implementan en la mayoría de los lenguajes de programación:

te = t + (1- (t mod 2))
((n-(t mod 2)) * floor(t / 2) mod te) + (t mod 2)

1voto

Simon Hayter Puntos 145

Si $t$ es impar, entonces el algoritmo obvio es dar un paso alrededor de $t$ puntos uniformemente espaciados en la carta de colores por $\left\lfloor \frac {t-1}{2}\right\rfloor$ puntos cada vez, dibujando el mayor número posible de $t$ -grama (el pentagrama (13524), el heptagrama (147362), etc).

En general, se puede tomar el siguiente número entero $\frac{t}{2}$ que es coprima a $t$ para una solución razonablemente buena. No es óptima para los casos especiales $t=4$ , $t=6$ para el que ese número entero es 1, cuando las secuencias $(1324)$ y $(142536)$ dan menos pares de colores adyacentes. Así que supongo que hay mayores $t$ donde también se puede hacer mejor, aunque no veo inmediatamente el patrón.

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:

X