Terima kasih atas peringkat dan umpan balik Anda!
Anda sudah menilai.
Sebuah aplikasi untuk memvisualisasikan kurva ruang dan besaran geometri diferensialnya.
# Aplikasi Visualisasi Kurva untuk Android
**Bahasa Inggris** | [Bahasa Bulgaria](README.bg.md)
Sebuah aplikasi untuk memvisualisasikan kurva ruang dan menghitung besaran geometri diferensialnya.
## Menggunakan aplikasi
- Masukkan `x(t)`, `y(t)`, `z(t)` dan interval `[a, b]`, lalu ketuk **Gambar**.
- Penggeser menggerakkan titik di sepanjang kurva; semua besaran diperbarui untuk `t` saat ini.
- Putar kurva dengan jari Anda. Kotak centang mengaktifkan/menonaktifkan lingkaran oskulasi.
- Sintaks (exp4j): `+ - * / ^`, `sin cos tan asin acos atan sinh cosh tanh exp log sqrt abs`, konstanta `pi` dan `e`. Contoh: `2*sin(t)^2`.
## Tabel Titik
Ikon tabel membuka layar terpisah (`PointsActivity`) dengan koordinat x(t), y(t), z(t) dari titik-titik kurva saat ini. Atur **t dari**, **t sampai** dan **langkah**, lalu ketuk **Hitung**; nilai default adalah interval saat ini dan 1/10 dari panjangnya. Hingga 2000 titik ditampilkan. Teks dapat dipilih, sehingga dapat disalin.
## Menyimpan Kurva
- **Simpan (ikon disket):** menyimpan kurva saat ini (x, y, z dan interval) dengan nama; menyimpan dengan nama yang sudah ada akan menimpanya.
- **Kurva Saya (ikon folder):** menampilkan daftar kurva yang tersimpan. Ketuk salah satu untuk memuat dan menggambarnya; tekan lama untuk menghapus.
- Kurva disimpan di perangkat (SharedPreferences) dan tetap ada setelah aplikasi dimulai ulang.
## Menu (⋮)
Bilah atas memiliki ikon untuk Simpan dan Kurva Saya, ditambah Contoh dan Bahasa (jika ada ruang), dan menu luapan ⋮ (Tentang):
- **Contoh:** heliks, lingkaran, kubus terpilin, kurva Viviani, simpul trefoil. Memilih salah satu akan mengisi kolom dan menggambarnya.
- **Bahasa:** Otomatis (sistem), Inggris, Bulgaria, Prancis, Jerman, Spanyol.
- **Bantuan:** deskripsi singkat aplikasi, tautan ke aplikasi lain karya penulis, dan bantuan untuk aplikasi.
## Bahasa
Antarmuka pengguna tersedia dalam bahasa Inggris (default), Bulgaria, Prancis, Jerman, dan Spanyol. Secara default, antarmuka mengikuti bahasa telepon; menu memungkinkan Anda memilih bahasa secara manual (pilihan akan diingat). Untuk menambahkan bahasa, salin `res/values/strings.xml` ke `res/values-XX/` (XX adalah kode bahasa), terjemahkan nilainya, lalu tambahkan kode ke `LANG_CODES` dan namanya ke `setupLanguageSpinner()` di `MainActivity.java`.
## Besaran yang ditampilkan
| Besaran | Rumus | Arti |
| **r(t)** | (x(t), y(t), z(t)) | Posisi titik |
| **\|r'\|** (kecepatan) | √(x'² + y'² + z'²) | Kecepatan sepanjang parameterisasi |
| **s** (panjang busur) | ∫ₐᵗ \|r'(u)\| du | Jarak tempuh dari a ke t (aturan Simpson) |
| **κ** (kelengkungan) | \|r' × r''\| / \|r'\|³ | Seberapa cepat kurva melengkung. Garis: 0. Lingkaran dengan jari-jari R: 1/R |
| **ρ** (jari-jari kelengkungan) | 1/κ | Jari-jari lingkaran yang paling sesuai. ∞ ketika κ = 0 |
| **τ** (torsi) | (r' × r'')·r''' / \|r' × r''\|² | Seberapa jauh kurva meninggalkan bidangnya. Kurva planar: 0. Tangan kanan: τ > 0, tangan kiri: τ < 0 |
| **T** (tangen) | r' / \|r'\| | Vektor satuan sepanjang arah gerak (merah) |
| **N** (normal utama) | B × T | Vektor satuan menuju pusat kelengkungan (hijau) |
| **B** (binormal) | (r' × r'') / \|r' × r''\| | Tegak lurus terhadap bidang oskulasi (biru) |
| **a_T** | (r'·r'') / \|r'\| | Percepatan tangensial: perubahan kecepatan |
| **a_N** | κ·\|r'\|² | Percepatan normal: perubahan arah. Percepatan total adalah a_T·T + a_N·N |
| **Pusat kelengkungan** | C = r + ρ·N | Pusat lingkaran oskulasi |
| **Lingkaran oskulasi** | terletak di bidang (T, N), pusat C, jari-jari ρ | Lingkaran yang menyentuh kurva pada orde tertinggi di titik (oranye) |
### Bidang-bidang kerangka
- **Bidang oskulasi:** yang dibentuk oleh T dan N, vektor normal B
- **Bidang normal:** yang dibentuk oleh N dan B, vektor normal T
- **Bidang rektifikasi:** yang dibentuk oleh T dan B, vektor normal N
### Rumus Frenet-Serret
(s adalah panjang busur)
- dT/ds = κ·N
- dN/ds = −κ·T + τ·B
- dB/ds = −τ·N
Kelengkungan dan torsi menentukan kurva secara unik hingga gerakan kaku ruang.
## Cara kerjanya
r', r'' dan r''' dihitung secara numerik dengan perbedaan hingga pusat (langkah H = 10⁻³), kemudian rumus-rumus tersebut diterapkan. Panjang busur menggunakan aturan Simpson (200 interval).
Sekali klik untuk menginstal file XAPK/APK di Android!