Hướng dẫn how to rotate an ellipse in javascript - cách xoay một hình elip trong javascript

Phương trình để tìm các điểm của hình elip với bán trục rxry, được xoay theo góc fi.

Tính toán điểm cho tham số

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
0 trong phạm vi
var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
1 với bước cần thiết.

x = rx * Cos(t) * Cos(fi) - ry * Sin(t) * Sin(fi) + cx
y = rx * Cos(t) * Sin(fi) + ry * Sin(t) * Cos(fi) + cy

Ví dụ cho RX = 100, RY = 60, fi = -pi/6:

Hướng dẫn how to rotate an ellipse in javascript - cách xoay một hình elip trong javascript

Bổ sung: Có vẻ như bạn tính toán các điểm elip trong tệp fluid.js tại đây:

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);

Vì vậy, bạn cần sửa đổi các dòng này để kiểm tra chúng:

 var ellipseRot =  Math.PI / 4
    var r_x = circle_x * Math.cos(circRot) * Math.cos(ellipseRot)- circle_y * Math.sin(circRot) * Math.sin(ellipseRot);
    var r_y = circle_x * Math.sin(circRot) *Math.sin(ellipseRot) + circle_y * Math.cos(circRot) * Math.cos(ellipseRot);

Sau đó thay đổi

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
2 với thanh trượt

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách sử dụng phương pháp JavaScript

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3 để xoay các đối tượng vẽ.: in this tutorial, you’ll learn how to use the JavaScript
var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3 method to rotate drawing objects.

Giới thiệu về API canvas rots () Canvas API

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3 là một phương pháp của bối cảnh bản vẽ 2D. Phương thức xoay () cho phép bạn xoay một đối tượng vẽ trên khung vẽ.

Đây là cú pháp của phương pháp

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3:

ctx.rotate(angle)

Code language: CSS (css)

Phương pháp

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3 chấp nhận một góc xoay trong radian.

Nếu góc dương, vòng quay theo chiều kim đồng hồ. Trong trường hợp góc là âm, vòng quay ngược chiều kim đồng hồ.

Để chuyển đổi một mức độ thành radian, bạn sử dụng fomular sau:

degree * Math.PI / 180

Code language: JavaScript (javascript)

Khi thêm một vòng quay, phương pháp

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
3 sử dụng nguồn gốc khung vẽ làm điểm trung tâm quay.

Hình ảnh sau đây minh họa cho vòng quay:

Hướng dẫn how to rotate an ellipse in javascript - cách xoay một hình elip trong javascript

Nếu bạn muốn thay đổi điểm trung tâm xoay, bạn cần di chuyển nguồn gốc của khung vẽ bằng phương pháp

var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
8.

Ví dụ rotate () JavaScript

Ví dụ sau đây vẽ một hình chữ nhật màu đỏ bắt đầu từ trung tâm của khung vẽ. Sau đó, nó dịch nguồn gốc của Canvas sang trung tâm Canvas và vẽ hình chữ nhật thứ hai với vòng quay 45 độ:

HTML

<canvas id="canvas" height="300" width="500"> canvas>

Code language: HTML, XML (xml)

JavaScript

const canvas = document.querySelector('#canvas'); if (canvas.getContext) { // rectangle's width and height const width = 150, height = 20; // canvas center X and Y const centerX = canvas.width / 2, centerY = canvas.height / 2; const ctx = canvas.getContext('2d'); // a red rectangle ctx.fillStyle = 'red'; ctx.fillRect(centerX, centerY, width, height); // move the origin to the canvas' center ctx.translate(centerX, centerY); // add 45 degrees rotation ctx.rotate(45 * Math.PI / 180); // draw the second rectangle ctx.fillStyle = 'rgba(0,0,255,0.5)'; ctx.fillRect(0, 0, width, height); }

Code language: JavaScript (javascript)

Đây là liên kết demo.

Output:

Hướng dẫn how to rotate an ellipse in javascript - cách xoay một hình elip trong javascript

Bản tóm tắt

  • Sử dụng phương thức JavaScript
    var r_x = circle_x * Math.cos(circRot) - circle_y * Math.sin(circRot);
    var r_y = circle_x * Math.sin(circRot) + circle_y * Math.cos(circRot);
    
    3 để xoay đối tượng bản vẽ trên khung vẽ.

Hướng dẫn này có hữu ích không?

Làm thế nào để bạn xoay một hàm hình elip?

Xoay ngược chiều kim đồng hồ về nguồn gốc thông qua một góc α mang (x, y) đến (x cos α - y sin α, y cos α + x sin α) (xuất phát ở đây).Hoạt động nghịch đảo có thể thu được bằng cách xoay qua 2π - α, và do đó mang (x, y) sang (x cos α + y sin α, y cos α - x sin α). (derived here). The inverse operation can be obtained by rotating through 2π − α , and hence carries ( x , y ) to ( x cos α + y sin α , y cos α − x sin α ).

Làm thế nào để bạn xoay một vòng tròn trong JavaScript?

ROTATE () là một phương thức của bối cảnh bản vẽ 2D.Phương thức xoay () cho phép bạn xoay một đối tượng vẽ trên khung vẽ.Phương thức xoay () chấp nhận một góc xoay trong radian.Nếu góc dương, vòng quay theo chiều kim đồng hồ.rotate() is a method of the 2D drawing context. The rotate() method allows you to rotate a drawing object on the canvas. The rotate() method accepts a rotation angle in radians. If the angle is positive, the rotation is clockwise.

Làm thế nào để bạn xoay một hộp trong javascript?

Một phần tử có thể được xoay 90 độ bằng cách sử dụng thuộc tính biến đổi.Thuộc tính này được sử dụng để di chuyển, xoay, quy mô và các loại khác để thực hiện các loại chuyển đổi khác nhau cho các yếu tố.Hàm biến đổi xoay () có thể được sử dụng làm giá trị để xoay phần tử.by using the transform property. This property is used to move, rotate, scale and others to perform various kinds of transformation to elements. The rotate() transformation function can be used as the value to rotate the element.