Tôi đã tạo số này page để hiểu rõ hơn về câu hỏi. Như bạn có thể thấy bằng cách sử dụng CSS3, chúng ta có thể xoay một phần tử xung quanh trục X, Y hoặc Z bằng cách sử dụng transform: rotate[XYZ](M deg/rad)
.Làm thế nào để xoay một phần tử xung quanh một dòng khác với X = 0, Y = 0 và Z = 0 bằng cách sử dụng CSS3?
Nhưng tôi đang tìm một chức năng để xoay phần tử trên bất kỳ dòng nhất định nào. Ví dụ: xoay phần tử trên đường dây x=y
. hoặc thậm chí phức tạp hơn y=2x+3
.
Nếu bạn không hiểu nó, hãy giữ một tờ giấy trong tay và lật nó từ hai góc xa của nó (cho y=x
hoặc y=-x
). hoặc nhìn vào bức tranh này.
Tôi đoán nó sẽ là sự kết hợp của hai góc xoay, nhưng tôi không biết làm thế nào để tính toán các phép quay.
Cập nhật:
tôi không biết có một chức năng rotate3d
cho CSS transform
. chức năng này chấp nhận bốn đối số rx
, ry
, rz
và deg
. Tôi cảm thấy rằng sẽ rất hữu ích cho vấn đề này.
Điều khác là khi chúng tôi thay đổi translate[X,Y,Z]
nó thực sự thay đổi nguồn gốc của vòng quay. Đó có nghĩa là nếu bạn muốn xoay quanh Y=10px
bạn nên thay đổi translateZ
để 10px
Update2:
mục tiêu thực tế của tôi là tạo ra một công cụ để áp dụng CSS transform tài sản sử dụng một giao diện đồ họa. như bạn có thể thấy trong tệp jsbin của tôi. Tôi muốn mở rộng nó đến bất cứ điều gì transform
có thể bạn có thể làm. Một trong số đó là xoay vòng. Tôi chắc chắn có thể xoay phần tử quanh các dòng khác với số x=0
... nhưng tôi không biết làm cách nào để tính toán. Ví dụ xoay 45 độ xung quanh Y
và 45 độ xung quanh Z
giống như xoay 45 độ xung quanh x=y
. Tôi cần một giải pháp cho tất cả các dòng trong không gian.
Bạn đang cố tạo mô hình lý thuyết M bằng javascript? :) – bfavaretto
Bất kỳ dòng nào trong không gian 3D đều có thể là trục quay. Chỉ cần nghĩ rằng x = y dòng. Vui lòng mở lại câu hỏi của tôi. Tôi sẽ thêm chi tiết hơn – Mohsen
Chúng tôi không ở trong không gian 3D. Tài liệu HTML là 2D trong tự nhiên, vì vậy tất cả các bạn có thể xoay quanh là một điểm. [Biến đổi 3D] (http://www.webkit.org/blog/386/3d-transforms/) hoàn toàn khác nhau ... – bobince