Gire el dial en la parte superior de una imagen semicircular (hemisferio norte) como fondo. El rango podría ser de 0 a 180 grados. en la entrada al método que realiza la transformación de lienzo, el dial giraría y se detendría sobre el valor coincidente. Esto es lo que yo estaba tratando sobre la base de la ayuda y de la muestra transmitida por phrogzutilizando HTML5 Canvas: gire la imagen sobre el punto arbitrario
Respuesta
En general, lo que queremos hacer es:
- transformar el contexto hasta el punto en el lienzo que el objeto debe girar alrededor .
- Gire el contexto.
- Transforma el contexto por el desplazamiento negativo dentro del objeto para el centro de rotación.
- Dibuje el objeto en 0,0.
En código:
ctx.save();
ctx.translate(canvasRotationCenterX, canvasRotationCenterY);
ctx.rotate(rotationAmountInRadians);
ctx.translate(-objectRotationCenterX, -objectRotationCenterY);
ctx.drawImage(myImageOrCanvas, 0, 0);
ctx.restore();
Aquí hay una working example mostrando esto en acción. (La matemática de la rotación fue pirateada experimentalmente para encontrar una cantidad de desplazamiento y desplazamiento en radianes que se ajustan al dial de calibrador de trazado rápido.)
Como puede ser evidente, puede sustituir la llamada translate
en el paso # 3 anterior con compensa a la llamada drawImage()
. Por ejemplo:
ctx.drawImage(myImageOrCanvas, -objectRotationCenterX, -objectRotationCenterY);
Se recomienda utilizar la traducción de contexto cuando tiene que dibujar varios objetos en la misma ubicación.
Gracias por la ayuda rápida y la Demostración también :) – Abhijit
Para más información, vea esta pregunta y respuesta (duplicadas): [Canvas HTML5 'drawImage' en ángulo] (http://stackoverflow.com/questions/3793397/html5-canvas-drawimage-with-at-an -ángulo). – Phrogz
Todavía está atascado cuando se trata de reemplazar los parámetros en el método rotar() para incorporar la alimentación de la estructura de datos. – Abhijit
- 1. Girando alrededor de un punto arbitrario: HTML5 Canvas
- 2. ¿Cómo escribir texto sobre la imagen en canvas HTML5?
- 3. ¿Cómo matizo una imagen con HTML5 Canvas?
- 4. Strange HTML5 Canvas drawComportamiento de la imagen
- 5. Manipulación de imágenes y mapeo de texturas utilizando HTML5 Canvas?
- 6. HTML5 Canvas Escala de imagen Edición
- 7. Conversión de imagen a Canvas/HTML5
- 8. HTML5 Canvas como fondo de la imagen CSS?
- 9. Crear imagen 3D de anáglifo en canvas HTML5
- 10. Canvas HTML5: ¿Cómo hacer una rueda giratoria de carga girando la imagen en grados?
- 11. Canvas HTML5: ¿cómo dibujar una línea sobre un fondo de imagen?
- 12. HTML5 canvas hittesting
- 13. HTML5 Canvas: zoom
- 14. ¿Qué formatos de imagen son compatibles con CANVAS en html5?
- 15. Canvas HTML5: diferentes trazos
- 16. canvas HTML5 "restablecer" fillStyle
- 17. Dart HTML5 Canvas Library?
- 18. HTML5 - canvas createLinearGradient vertical
- 19. HTML5 Canvas Vector Graphics?
- 20. Máscara para putImageData con canvas HTML5?
- 21. Gire un punto alrededor de un punto con OpenCV
- 22. UIWebView w/HTML5 Canvas y Retina Display
- 23. Superposición de texto sobre la imagen utilizando el posicionamiento relativo
- 24. Cambiar el cursor sobre HTML5 Lienzo al arrastrar el mouse
- 25. Gire el rectángulo alrededor de su centro
- 26. apoyo IE9 para la etiqueta HTML5 Canvas
- 27. Datos de origen cruzado en canvas HTML5
- 28. Juego de fichas para HTML5 canvas
- 29. HTML5 Canvas evita cualquier representación de subpíxeles
- 30. Sprites suaves para caminar en HTML5 Canvas
posible duplicado de [Lienzo rota desde el ángulo inferior de la imagen central?] (Http://stackoverflow.com/questions/365382/canvas-rotate-from-bottom-center-image-angle) –