2012-09-27 28 views
5

tôi muốn tạo hoạt ảnh trong javascript nơi đối tượng di chuyển trên đường dẫn. Đối với điều này tôi cần một chức năng mà trả về cho tôi X/Y tọa độ trên đường dẫn trong một thời gian nhất định. Đường dẫn phải là hình tam giác có cạnh mềm. Vào lúc bắt đầu của hình ảnh động, nó mềm nên di chuyển vào đường tam giác - nhưng tôi có thể giải quyết có thể trong một chức năng khác .. quan trọng hơn với tôi là hàm có thể trả lại cho tôi tọa độ X/Y để di chuyển trên tam giác.Chức năng để có được tọa độ X/Y để di chuyển trên hình tam giác với các cạnh mềm

Hoạt ảnh sau đó sẽ lặp vô tận trên đường tam giác.

the animation path

Có (trực tuyến) công cụ để tạo ra tọa độ cho một hình ảnh động như vậy?

Ai đó có thể giúp tôi với chức năng này không?

+0

tôi sẽ thử [đường cong theo đuổi] (http://en.wikipedia.org/wiki/Pursuit_curve), nơi con trỏ vẽ của bạn theo sau một điểm vô hình di chuyển trên một đường tam giác cứng ở một khoảng cách nhất định, nhờ đó làm mịn các cạnh. Điều này cũng sẽ cho phép để dễ dàng vào tam giác. –

+0

Tôi muốn giới thiệu một vòng Beziers để giải cứu, chúng được tạo tài liệu và dễ dàng thực hiện một cách dễ dàng và bạn có thể có được vị trí chính xác bất cứ lúc nào. Tuy nhiên, chúng có một thuộc tính gây phiền nhiễu không duy trì tốc độ không đổi dọc theo đường dẫn, và hoạt ảnh của bạn sẽ chậm hơn nhiều ở các đầu tròn hơn dọc theo các cạnh. – Lyth

+0

[superformula] (http://en.wikipedia.org/wiki/Superformula) với a = 3 có thể giúp – Bergi

Trả lời

1

Tôi muốn giới thiệu một cái gì đó như sqrt(x²+y²)=2.5+sin(atan2(y,x)*3)/5 - cực: ρ(θ)=2.5+sin(3θ)/5. Đó là một hệ thống đơn giản cực phối hợp, và thêm một làn sóng sin nén (3 giai đoạn mỗi lượt) trên một vòng tròn:

θ(t) = t // angle 
ρ(t) = 2.5 + 0.2 * sin (t * 3) // radius 
// of course, you can play with the parameters :-) 

Bạn có thể dễ dàng convert those polar coordinates into cartesion ones.

Hoạt ảnh lúc đầu, di chuyển từ trung tâm vào đường dẫn, sẽ cần thêm một chức năng nữa. Tuy nhiên, nó có thể được thực hiện với cùng một thợ cơ khí - bỏ qua phần vòng tròn: ρ(θ)=2.5*sin(3θ)

+0

Cảm ơn - đó chính xác là những gì tôi cần. Đây là một mẫu thử nghiệm: http://jsfiddle.net/qgPVn/4/ Tôi vẫn đang làm việc vào đầu hoạt ảnh .. Ngay khi tôi xóa tài khoản này, tôi sẽ chấp nhận câu trả lời của bạn! – Benjamin

Các vấn đề liên quan