Konversi kepadatan medan aliran

8

Saya mencoba menerapkan navigasi flowfield, seperti yang dijelaskan dalam http://grail.cs.washington.edu/projects/crowd-flows/ tapi saya tidak dapat memahami bagaimana Fungsi Kepadatan pada Gambar 4 dari makalah ini seharusnya menangani radius satuan.

Adakah yang pernah mengimplementasikannya dan dapat memberikan lebih banyak informasi?

Ini adalah bagian yang dipertanyakan:

masukkan deskripsi gambar di sini

Algoritma mereka tampaknya hanya menggunakan 4 sel, menunjuk ke kiri bawah unit, jadi apakah ini semacam kernel yang perlu diterapkan beberapa kali?

Terima kasih.

Sharvey
sumber
Tidak dapat menambahkan tag yang lebih relevan karena tingkat reputasi.
Sharar

Jawaban:

3

Tidak, ini bukan "kernel yang perlu diterapkan beberapa kali". Anda cukup menerapkan formula seperti yang tertulis, satu kali.

Ini semacam aturan yang aneh, dan tidak dijelaskan dengan jelas. Biarkan saya mencoba sedikit memperjelasnya:

  • Pertama, temukan empat sel yang sudut berbaginya paling dekat dengan unit. Unit akan menyumbang jumlah kepadatan yang tidak nol hanya untuk sel-sel itu. Sebut sel-sel A, B, C dan D seperti pada gambar 4 (b).

  • Misalkan Δx dan Δy menjadi jarak horizontal dan vertikal unit dari pusat sel A, diukur dalam satuan lebar / tinggi satu sel.

  • Misalkan ρ A = min (1 − Δx, 1 − Δy) λ , ρ B = min (Δx, 1 − Δy) λ , ρ C = min (Δx, Δy) λ dan ρ D = min (1 − ,x, Δy ) λ , seperti yang dijelaskan dalam makalah.

  • Biarkan unit berkontribusi ρ A kepadatan ke sel A, ρ B kepadatan ke sel B, ρ C kepadatan ke sel C, dan ρ D kepadatan ke sel D.

Seperti yang saya katakan, aturannya agak aneh, dan saya tidak memiliki interpretasi geometris yang jelas untuk menawarkannya. Namun demikian, memenuhi sifat yang diharapkan yang:

  • Ketika unit tepat di tengah sel X apa pun, maka (terlepas dari A, B, C atau D yang kita pilih X), ia memberikan kontribusi 1 λ = 1 unit densitas ke sel X dan 0 unit densitas untuk sel lainnya.

  • Ketika unit persis di sudut empat sel, memberikan kontribusi (1/2) λ unit kepadatan untuk masing-masing dari empat sel (dan tidak ada sel lain, menurut definisi).

Namun, perhatikan bahwa, menggunakan aturan ini, jumlah total kepadatan yang dikontribusikan oleh satu unit untuk semua sel tidak konstan, bahkan jika λ = 1. Secara khusus, ketika unit persis di titik tengah tepi antara dua sel, itu memberikan kontribusi (1/2) λ unit kepadatan untuk dua sel, dan tidak ada untuk sel lain. Jadi, menyebut nilai yang dihasilkan sebagai "kepadatan" tampaknya agak menyesatkan.


Sunting: Cara lain untuk menulis rumus untuk ρ A , ρ B , ρ C dan ρ D , yang dapat membuat simetri definisi lebih jelas, adalah dengan mendefinisikan d X = max (| x - x X |, | y - y X |) sebagai jarak papan catur dari unit di (x, y) dari pusat sel X di (x X , y X ), diukur dalam lebar / tinggi sel. Kemudian, untuk sel X apa pun,

  • ρ X = 0 jika d X ≥ 1, dan
  • ρ X = (1 - d X ) λ sebaliknya.
Ilmari Karonen
sumber
Saya tidak mengerti alasan mengapa sel-sel kiri bawah yang berdekatan dengan agen tersebut harus menerima nilai kerapatan sementara yang kanan atas seharusnya tidak.
Shararvey
@arvey: Karena dalam gambar, agennya ada di bawah dan di sebelah kiri tengah selnya.
Ilmari Karonen
Ah, itu masuk akal. Tetapi hanya untuk memperjelas, jari-jari unit tidak ada hubungannya dengan perhitungan kepadatan, kan?
Shararvey
Benar, sepertinya tidak ada "jari-jari" dalam formula yang Anda kutip yang bisa masuk ke dalam perhitungan itu.
Ilmari Karonen
Saya tidak lebih dekat untuk benar-benar mengimplementasikannya, tetapi terima kasih atas jawabannya. Kira saya akan membaca koran lagi.
sharvey