Cảm ơn bạn đã xếp hạng và phản hồi của bạn!
Bạn đã đánh giá.
Một ứng dụng để trực quan hóa các đường cong trong không gian và các đại lượng hình học vi phân của chúng.
# Ứng dụng Trực quan hóa Đường cong cho Android
**Tiếng Anh** | [Tiếng Bulgaria](README.bg.md)
Một ứng dụng để trực quan hóa các đường cong trong không gian và tính toán các đại lượng hình học vi phân của chúng.
## Sử dụng ứng dụng
- Nhập `x(t)`, `y(t)`, `z(t)` và khoảng `[a, b]`, sau đó nhấn **Vẽ**.
- Thanh trượt di chuyển điểm dọc theo đường cong; tất cả các đại lượng được cập nhật cho `t` hiện tại.
- Xoay đường cong bằng ngón tay của bạn. Hộp kiểm bật/tắt vòng tròn tiếp xúc.
- Cú pháp (exp4j): `+ - * / ^`, `sin cos tan asin acos atan sinh cosh tanh exp log sqrt abs`, hằng số `pi` và `e`. Ví dụ: `2*sin(t)^2`.
## Bảng điểm
Biểu tượng bảng sẽ mở một màn hình riêng biệt (`PointsActivity`) hiển thị tọa độ x(t), y(t), z(t) của các điểm trên đường cong hiện tại. Đặt **t từ**, **t đến** và **bước**, sau đó nhấn **Tính toán**; các giá trị mặc định là khoảng thời gian hiện tại và 1/10 chiều dài của nó. Hiển thị tối đa 2000 điểm. Văn bản có thể chọn được, vì vậy có thể sao chép.
## Lưu đường cong
- **Lưu (biểu tượng đĩa):** lưu đường cong hiện tại (x, y, z và khoảng thời gian) với một tên; lưu với tên hiện có sẽ ghi đè lên tên đó.
- **Đường cong của tôi (biểu tượng thư mục):** liệt kê các đường cong đã lưu. Nhấn vào một đường cong để tải và vẽ nó; nhấn giữ để xóa.
- Các đường cong được lưu giữ trên thiết bị (SharedPreferences) và vẫn còn sau khi khởi động lại ứng dụng.
## Menu (⋮)
Thanh trên cùng có các biểu tượng Lưu và Đường cong của tôi, cùng với Ví dụ và Ngôn ngữ (nếu có chỗ), và một menu tràn ⋮ (Giới thiệu):
- **Ví dụ:** hình xoắn ốc, hình tròn, hình lập phương xoắn, đường cong Viviani, nút thắt ba lá. Chọn một ví dụ sẽ điền vào các trường và vẽ nó.
- **Ngôn ngữ:** Tự động (hệ thống), Tiếng Anh, Tiếng Bulgaria, Tiếng Pháp, Tiếng Đức, Tiếng Tây Ban Nha.
- **Trợ giúp:** mô tả ngắn gọn về ứng dụng, liên kết đến các ứng dụng khác của tác giả và trợ giúp cho ứng dụng.
## Ngôn ngữ
Giao diện người dùng có sẵn bằng tiếng Anh (mặc định), tiếng Bulgaria, tiếng Pháp, tiếng Đức và tiếng Tây Ban Nha. Theo mặc định, nó sẽ theo ngôn ngữ của điện thoại; menu cho phép bạn chọn ngôn ngữ theo cách thủ công (lựa chọn sẽ được ghi nhớ). Để thêm ngôn ngữ, hãy sao chép `res/values/strings.xml` vào `res/values-XX/` (XX là mã ngôn ngữ), dịch các giá trị, sau đó thêm mã vào `LANG_CODES` và tên vào `setupLanguageSpinner()` trong `MainActivity.java`.
## Các đại lượng được hiển thị
| Đại lượng | Công thức | Ý nghĩa |
| **r(t)** | (x(t), y(t), z(t)) | Vị trí của điểm |
| **\|r'\|** (tốc độ) | √(x'² + y'² + z'²) | Tốc độ dọc theo tham số hóa |
| **s** (chiều dài cung) | ∫ₐᵗ \|r'(u)\| du | Khoảng cách di chuyển từ a đến t (quy tắc Simpson) |
| **κ** (độ cong) | \|r' × r''\| / \|r'\|³ | Tốc độ uốn cong của đường cong. Đường thẳng: 0. Đường tròn bán kính R: 1/R |
| **ρ** (bán kính cong) | 1/κ | Bán kính của đường tròn phù hợp nhất. Vô cực khi κ = 0 |
| **τ** (xoắn) | (r' × r'')·r''' / \|r' × r''\|² | Độ lệch của đường cong so với mặt phẳng. Đường cong phẳng: 0. Thuận chiều kim đồng hồ: τ > 0, ngược chiều kim đồng hồ: τ < 0 |
| **T** (tiếp tuyến) | r' / \|r'\| | Vectơ đơn vị theo hướng chuyển động (màu đỏ) |
| **N** (vectơ pháp tuyến chính) | B × T | Vectơ đơn vị hướng về tâm cong (màu xanh lá cây) |
| **B** (vectơ pháp tuyến phụ) | (r' × r'') / \|r' × r''\| | Vuông góc với mặt phẳng tiếp tuyến (màu xanh) |
| **a_T** | (r'·r'') / \|r'\| | Gia tốc tiếp tuyến: thay đổi tốc độ |
| **a_N** | κ·\|r'\|² | Gia tốc pháp tuyến: thay đổi hướng. Tổng gia tốc là a_T·T + a_N·N |
| **Tâm cong** | C = r + ρ·N | Tâm của đường tròn tiếp tuyến |
| **Đường tròn tiếp tuyến** | nằm trong mặt phẳng (T, N), tâm C, bán kính ρ | Đường tròn tiếp xúc với đường cong ở bậc cao nhất tại điểm (màu cam) |
### Các mặt phẳng của hệ tọa độ
- **Mặt phẳng tiếp tuyến:** được tạo bởi T và N, vectơ pháp tuyến B
- **Mặt phẳng pháp tuyến:** được tạo bởi N và B, vectơ pháp tuyến T
- **Mặt phẳng chỉnh lưu:** được tạo bởi T và B, vectơ pháp tuyến N
### Công thức Frenet-Serret
(s là độ dài cung)
- dT/ds = κ·N
- dN/ds = −κ·T + τ·B
- dB/ds = −τ·N
Độ cong và độ xoắn xác định một đường cong duy nhất, ngoại trừ chuyển động cứng nhắc trong không gian.
## Cách thức hoạt động
r', r'' và r''' được tính toán bằng phương pháp sai phân hữu hạn trung tâm (bước H = 10⁻³), sau đó áp dụng các công thức. Độ dài cung sử dụng quy tắc Simpson (200 khoảng).
Một cú nhấp chuột để cài đặt các tệp XAPK/APK trên Android!