Quiero moverme a través de los píxeles de una imagen, no yendo línea por línea, columna por columna en la forma "normal". Pero comience en el píxel central y salga hacia afuera en un movimiento en espiral. Pero no estoy seguro de cómo hacer esto. ¿Alguna sugerencia sobre cómo se puede hacer esto?C# ¿Moviéndose a través de una imagen en un movimiento en espiral?
Respuesta
Puede hacerlo utilizando funciones paramétricas, la función para radio es r (t) = R, y x (t) = Rcos (t) e y (t) = Rsin (t). ¿Te refieres a algo así como this?
Eso se ve como lo que quiero. ¡Muchas gracias! –
Sería útil pensar en esto al revés.
Por ejemplo, comenzando por la esquina superior izquierda y moviéndose en sentido horario, se movería a lo largo de la fila superior, luego por el lado derecho, por la parte inferior y por el borde izquierdo hasta el píxel por debajo del punto inicial .
Luego, avance a lo largo de la segunda fila y continúe en espiral.
Según las dimensiones de la imagen, terminará con una sola columna de píxeles o una sola fila de píxeles y se moverá hacia arriba/abajo o hacia la izquierda/derecha.
Desde este punto de finalización puede seguir sus pasos hacia atrás y procesar todos los píxeles que necesite.
Para calcular matemáticamente la posición inicial, necesitaría saber el ancho/alto de la imagen y el píxel al que desea terminar y la dirección en la que desea viajar cuando llegue al último píxel .
Algo así debe hacerlo:
int x = width/2;
int y = height/2;
int left = width * height;
int dir = 0;
int cnt = 1;
int len = 2;
int[] move = { 1, 0, -1, 0, 1 };
while (left > 0) {
if (x >= 0 && x < width && y >= 0 && y < height) {
// here you do something with the pixel at x,y
left--;
}
x += move[dir % 4];
y += move[(dir % 4) + 1];
if (--cnt == 0) {
cnt = len++/2;
dir++;
}
}
Si la imagen no es cuadrada, la espiral continuará fuera de las coordenadas de la imagen hasta que toda la imagen ha sido cubierta. La condición en la declaración if
asegura que solo se procesen las coordenadas que son parte de la imagen.
- 1. una imagen en movimiento de A a B con JavaScript
- 2. Rendimiento de imagen en movimiento en la página web a través de CSS vs HTML5 Canvas
- 3. Buscar una posición de un punto en el espacio 3D moviéndose alrededor de un vector con movimiento circular uniforme
- 4. Android: imagen de fondo en movimiento mientras se navega a través Vistas
- 5. C# enviar imagen a través de HTTP
- 6. ¿Moviéndose de Wiimote a la cámara?
- 7. Dibujando una espiral en un lienzo HTML usando JavaScript
- 8. Moviéndose con lambdas
- 9. Cortando una imagen en pedazos a través de Javascript
- 10. Desarrollador moviéndose de SQL Server a Oracle
- 11. Java ¿Loop a través de los píxeles en una imagen?
- 12. moviendo una imagen a través de un lienzo html
- 13. ¿Inyectar evento de movimiento a través de windowmanger?
- 14. PostgreSQL: ACTUALIZACIÓN implica movimiento a través de particiones
- 15. Movimiento de imagen y problema de escala en iOS5
- 16. Hilos en espiral ... ¿cómo usarlos correctamente?
- 17. Movimiento de 2D a 3D
- 18. iOS: movimiento animado de una etiqueta o imagen
- 19. Movimiento suave de la imagen de anotación en Mapview
- 20. ¿Cómo mostrar un barco en movimiento en Google Earth?
- 21. ¿Cómo puedo editar una imagen jpg a través de Java?
- 22. Matriz y algoritmo "espiral"
- 23. alisar el movimiento del mouse
- 24. Android múltiples ImageView moviéndose al tacto
- 25. Detectar un objeto en una imagen de cámara en C#
- 26. líneas en movimiento de una ventana a otra
- 27. mostrar una imagen en C#
- 28. ¿Cuál es la mejor manera de transferir una imagen a través de un servicio web en C#?
- 29. Usando una Curva de Bezier para dibujar una espiral
- 30. reemplazar imagen a través de css
¿Puede ser un poco más claro cómo espera que se comporte en una imagen no cuadrada? ... solo las imágenes cuadradas funcionarán perfectamente con una espiral, cualquier otra cosa se golpeará un conjunto de bordes antes que los demás ... – jerryjvl