2011-01-30 13 views
6

मैं सोच रहा था कि क्या कोई बहुभुज के साथ हाइपरबॉलिक विमान को टेस्सेल करने के लिए एक अच्छी लाइब्रेरी जानता है (मेरा मुख्य हित {8,3} टेस्सेलेशन में है)। मुझे यहां कुछ और एप्लेट मिलते हैं लेकिन तर्क से अलग होने से उनमें से सभी में डरावना है। यह एकदम सही होगा यदि ऐसी लाइब्रेरी है जो ग्राफिक्स से बिल्कुल निपटती नहीं है (क्योंकि मैं स्विंग का उपयोग करने या अपनी खुद की एप्लेट बनाने की योजना नहीं बना रहा हूं), केवल पैरामीटर लेता है: {p, q} और परत गिनती, फिर रिटर्न रेखाओं या बिंदुओं (या बहुभुज वस्तुओं) की एक सरणी। यदि सबसे बुरी स्थिति सबसे खराब होती है, तो मुझे अपनी खुद की लाइब्रेरी को लागू करना होगा, इसलिए अगर कोई कुछ कागज़ के बारे में जानता है तो यह सहायक भी हो सकता है जो टेस्सेलेशन के लिए एल्गोरिदम का विस्तार से वर्णन करता है।हाइपरबॉलिक टेस्सेलेशन जावा लाइब्रेरी

संपादित

वैसे, मुझे लगता है कि मैंने पाया उल्लेख किया है चाहिए एक शांत दिखने hyperbolic tessellations applet डॉन हैच द्वारा और पहली बार में उत्साहित हो गया। तब मैंने देखा कि वह source code होने का दावा करता है। जेएआर के अंदर मैंने .prejava एक्सटेंशन वाली फ़ाइलों की खोज की और मुझे बिल्कुल पता नहीं था कि मैं क्या देख रहा था - यह जावा और सी कोड का कुछ भयानक संकर था। एक करीबी निरीक्षण के प्रयास पर मुझे तुरंत सिरदर्द से पुरस्कृत किया गया। जाहिर है कि वह जावा कंपाइलर को अनुकूलित करने की कोशिश कर रहा था ... या कम से कम यही है कि मैंने javacpp की सामग्री को देखने से एकत्र किया। कहने की जरूरत नहीं है, मैं सी संकलक का उपयोग कर जावा स्रोत फ़ाइलों को उत्पन्न करने के लिए अपने निर्देशों का पालन करने में अपना समय बिताने में बेहद संकोच कर रहा हूं, वाह ...

+1

सबसे पहले, इस प्रश्न के लिए धन्यवाद - मुझे एक समान आवश्यकता है। साथ ही, मुझे पता है कि यह पोस्ट पुराना है, लेकिन मैं भविष्य के पाठकों को इंगित करना चाहता था कि संकलन के लिए डॉन हैच का स्रोत कोड प्राप्त करना मुश्किल नहीं है। 'javacpp' सिर्फ एक perl स्क्रिप्ट है जो सामान्य .java फ़ाइलों का उत्पादन करने के लिए .prejava फ़ाइलों पर सी preprocessor चलाता है। वह जो भी कर रहा है वह सी # डिफाइन, #ifdefs इत्यादि के उपयोग को सक्षम बनाता है, जो कि अच्छी विशेषताएं हैं। (अनुकूलन के साथ कुछ भी नहीं करना।) यदि आपके पास 'मेक', 'perl', और' cpp' है, तो आप बस 'मेक' चलाते हैं और यह सब निर्बाध रूप से संकलित करता है। – LarsH

+0

हालांकि मैं जोड़ूंगा कि तर्क और दृश्य के बीच अलगाव आपके लिए आवश्यकतानुसार नहीं हो सकता है। हैच लाइन सेगमेंट के मामले में सब कुछ करता है, जो टाइल वाले बहुभुज के आधे किनारे हैं। इन रेखा खंडों को बहुभुज में, या यहां तक ​​कि पूरे बहुभुज किनारों में भी समूहीकृत नहीं किया जाता है। इसलिए यदि आपको बहुभुज के संदर्भ में चीजों को करने की आवश्यकता है, या "आदर्श" (जैसे एस्चर की मछली) को दोहराया गया है, तो आपको हैच कोड से प्राप्त करने में आपको जो कुछ चाहिए, उसे प्राप्त करना मुश्किल हो सकता है। हालांकि उनका कोड सबसे कुशल लगता है। – LarsH

उत्तर

2

यह थोड़ा सा विषय हो सकता है, मैं भी हाइपरबॉलिक टेस्सेलेशंस के एक साफ, ढीले युग्मित कार्यान्वयन की तलाश में हूं। मैं पोंकारे डिस्क मॉडल http://haishibai.blogspot.com/2010/07/draw-hyperbolic-geometry-poincare-disc.html

के इस सीधी-सपाट कार्यान्वयन पाया मैं भी इस पत्र कुछ छद्म कोड http://www.d.umn.edu/cs/thesis/ajit_datar_ms.pdf

वे उपलब्ध स्रोत कोड के बारे में बात की है कि पाया: hyperart http://sourceforge.net/projects/hyperart/ लेकिन यह कोई साथ एक संकलित exe है स्रोत।

+0

Duuuuude! बहुत बढ़िया! मुझे एक नजदीक दिखना होगा, लेकिन ऐसा लगता है कि यह बेहद सहायक होगा! – Andrey

+0

आप क्यों कहते हैं कि हाइपरर्ट का कोई स्रोत नहीं है? यहां यह है: http://hyperart.cvs.sourceforge.net/viewvc/hyperart/ इसे सभी एक संग्रह में चाहते हैं? "जीएनयू टैरबॉल डाउनलोड करें" पर क्लिक करें। – LarsH

+0

मेरी बुराई खराब करें, इसके बारे में खेद है और लिंक के लिए धन्यवाद :) – nicoptere

3

http://aleph0.clarku.edu/~djoyce/poincare/PoincareApplet.html पर एक एप्लेट है। शायद आप कोड पढ़ सकते हैं।

+1

मैंने इसे देखा और इसके लिए स्रोत है। लेकिन चूंकि यह पुस्तकालय नहीं है और उदाहरण के उपयोग और दस्तावेज़ीकरण की कमी है, मैं अभी तक अपने आंतरिक काम में प्रवेश नहीं करना चाहता हूं।मेरी योजना केवल इस एप्लेट के स्रोत को देखना शुरू करना है अगर मुझे बेहतर विकल्प नहीं मिलता है। – Andrey

+0

इस एप्लेट कोड की आंतरिक कार्यप्रणाली बहुत स्पष्ट है ... हैच की तुलना में आईएमओ के साथ काम करना बहुत आसान है। – LarsH

0

यह भी देखें कि Tyler एप्लेट जो डॉन और मैंने लिखा था। "हाइपरबॉलिक" चेक-बॉक्स पर क्लिक करें, फिर "वक्रता पर आधारित" फ़ील्ड में "8,8,8" दर्ज करें। आप दाईं ओर '8' रेडियो बटन भी चुनना चाहते हैं ताकि प्रत्येक क्लिक आपके माउस पॉइंटर के नजदीक किनारे पर एक अष्टकोणीय जोड़ देगा। आप पक्षों की संख्या के साथ बहुभुज डालने के लिए एक संख्या कुंजी भी क्लिक कर सकते हैं। निर्देशों को पढ़ें और आप जल्दी से किसी भी प्रकार की टाइलिंग के बारे में सोचने में सक्षम होंगे जो आप कल्पना कर सकते हैं। यह सब कुछ आपको चाहिए, लेकिन पूर्ण स्रोत उस पृष्ठ पर भी उपलब्ध है, और प्री-प्रोसेसिंग सामग्री के बिना।

संबंधित मुद्दे