2012-04-16 26 views
15

Trên số lớn này web page Tôi đã tìm thấy danh sách các thuật toán giảm bớt có thể thêm hấp dẫn trực quan đẹp mắt vào các trang web của tôi.Dễ hiểu Cubic - Đối số chức năng Giải thích

Mặc dù, tôi thấy có đề cập ngắn gọn về các đối số hàm (xem bên dưới), thuật toán không hoạt động như tôi muốn. Tôi có thể yêu cầu giải thích về những giá trị/dải ô nào nên được nhập vào các đối số của hàm dưới đây được đề cập không?

danh sách Đối số:

  • t: thời gian hiện tại - đây nên giá trị 0 ... 1, hoặc số thực của khung hiện tại?
  • b: giá trị đầu - Tôi giả sử, một sự khởi đầu X hoặc Y phối hợp của đối tượng được chuyển
  • c: sự thay đổi trong giá trị - ở đây có thể là số 1 tất cả các thời gian cho tất cả các khung?
  • d: thời lượng - số lượng khung hoàn toàn?

Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; };

nên các giá trị được thêm tăng dần giá trị cuối cùng thu được từ chức năng, hoặc họ nên được bổ sung vào vị trí ban đầu 0?

+1

Liên kết này giải thích câu hỏi của tôi khá chi tiết: http://upshots.org/actionscript/jsas-understanding-easing –

Trả lời

15

Bạn nói đúng, d là thời lượng và t là thời gian hiện tại. Do đó, t phải từ 0 đến d.

c là tổng thay đổi, phải bằng end value - start value.

  • Đối t = 0 chúng tôi có c*(-1 + 1) + b hoặc b
  • Đối t = d chúng tôi có c*(0 + 1) + b hoặc b + c

Chức năng sẽ là như nhau đối với bất kỳ fps, đó là tùy thuộc vào bạn như thế nào thường xuyên cập nhật vị trí và gọi hàm .

+0

+1, xin chào và cảm ơn bạn đã repply. Tôi sẽ thử công thức với thông tin mới khi tôi về nhà. ** Có thể b (giá trị bắt đầu) là số âm không? ** Nói, nếu tôi muốn di chuyển đối tượng ra khỏi màn hình, nghĩa là từ -50y đến 250y. Tôi không chắc chắn nếu công thức sẽ làm việc theo cách đó quá. –

+0

Có. Chỉ khi bạn thay đổi 't' từ 0 thành một số giá trị âm, nó sẽ hoạt động không theo cách dự định. – kirilloid

+0

Tôi có thể xác nhận, rằng sau khi hiểu chính xác về các đối số hàm, các đối tượng 2d hoạt động như chúng thực sự cần được thực hiện dễ dàng. Do đó, tôi xác định câu trả lời của bạn là * Câu trả lời được chấp nhận *. –

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