Tôi đang cố viết một phương thức nội suy từ 0 đến x (vị trí của một đối tượng trong một chiều) theo thời gian bằng cách tăng tốc ở đầu và giảm tốc ở cuối (dễ dàng ra/dễ dàng) với các ràng buộc duy nhất mà tổng thời gian được cung cấp, cũng như thời gian tăng tốc và giảm tốc . chuyển động nên tái tạo hiệu ứng quán tính và tôi đang xem xét một số Hermite curve cho các phần không tuyến tính.Toán học: Dễ Trong, dễ dàng Chuyển vị trí bằng đường cong Hermite với giới hạn thời gian
double Interpolate(
double timeToAccel, double timeCruising, double timeToDecel,
double finalPosition,
double currentTime)
{
//...
}
Ai đó có thể chỉ cho tôi một phần mã không? Tôi không biết làm thế nào để tích hợp đường cong Hermite, do đó không biết tôi sẽ di chuyển bao nhiêu trong phần tăng tốc hoặc trong phần giảm tốc, và đến lượt tôi không thể biết được tốc độ tuyến tính là bao nhiêu phần.
Cảm ơn.
Some reference để minh họa câu hỏi của tôi.
Sửa:
- bắt đầu và kết thúc tốc độ là null, và thời điểm hiện tại cũng là một phần của các tham số trong phương pháp này, tôi đã cập nhật chữ ký.
- về cơ bản ý tưởng là tưởng tượng di chuyển với tốc độ không đổi trên khoảng cách d, điều này cho tổng thời lượng. Sau đó, chúng ta thêm các pha tăng tốc và giảm tốc, trong khi duy trì cùng một khoảng thời gian, do đó chúng ta có một tốc độ hành trình mới chưa xác định để xác định (vì chúng ta di chuyển ít hơn trong các pha Hermite hơn trong các pha tuyến tính mà chúng đã thay thế). Có lẽ số lượng di chuyển bị mất trong các giai đoạn Hermite, so với một động thái tuyến tính của cùng một thời gian là tỷ lệ giữa khu vực trên và dưới trong các đường cong, chỉ là một ý tưởng từ một chuyên gia không.
Chỉnh sửa: Roman và Bob10 đã cung cấp giải pháp làm việc đầy đủ. Tôi đã triển khai mã từ Roman. Cảm ơn cả hai, các bạn! Tôi đánh giá cao sự hỗ trợ hoàn hảo của bạn và các giải pháp chi tiết của bạn, bạn đã lưu cho tôi các tìm kiếm và thử nghiệm dài.
Are vận tốc thiết bị đầu cuối bằng không? –
Có Victor, đúng vậy. – 742