अजगर में अच्छा ज्यामिति पुस्तकालय? [बन्द है]


97

मैं अजगर में ज्यामितीय जोड़तोड़ और मूल्यांकन के लिए एक अच्छी और अच्छी तरह से विकसित पुस्तकालय की तलाश कर रहा हूं, जैसे:

  • 2 डी और 3 डी (यदि वर्तमान) में दो लाइनों के बीच अंतर का मूल्यांकन करें
  • एक हवाई जहाज़ और एक रेखा के बीच चौराहे के बिंदु का मूल्यांकन करें, या दो विमानों के बीच चौराहे की रेखा
  • एक रेखा और एक बिंदु के बीच की न्यूनतम दूरी का मूल्यांकन करें
  • एक बिंदु से गुजरने वाले विमान के लिए अलौकिक खोजें
  • घुमाएँ, अनुवाद करें, बिंदुओं का एक दर्पण
  • चार बिंदुओं द्वारा परिभाषित विकर्ण कोण ज्ञात कीजिए

मेरे पास इन सभी कार्यों के लिए एक संकलन पुस्तक है, और मैं इसे लागू कर सकता हूं लेकिन दुर्भाग्य से मेरे पास कोई समय नहीं है, इसलिए मैं एक पुस्तकालय का आनंद लेता हूं जो यह करता है। अधिकांश ऑपरेशन गेमिंग उद्देश्यों के लिए उपयोगी होते हैं, इसलिए मुझे यकीन है कि इनमें से कुछ फ़ंक्शंस गेमिंग लाइब्रेरी में पाए जा सकते हैं, लेकिन मैं फ़ंक्शंस को शामिल नहीं करना पसंद करूँगा (जैसे ग्राफिक्स) मुझे ज़रूरत नहीं है।

कोई सुझाव ? धन्यवाद


आप केवल 2 डी के साथ ठीक कर रहे हैं तो आप देख सकते हैं इस
पिथिकोस

जवाबों:


36

शायद SymPy पर एक नज़र डालें


2
यह वास्तव में मेरी आवश्यकताओं को पूरा नहीं करता है, लेकिन यह वास्तव में एक शांत परियोजना है, इसलिए मैं आपके उत्तर को एक दिलचस्प सुझाव के रूप में भविष्य के लिए भी स्वीकार करता हूं (जैसा कि सिम्पी के पास एक ज्यामिति मॉड्यूल है, और डेवलपर्स की एक बड़ी राशि है)
स्टेफानो बोरीनी

1
2d ही दुःख से। वास्तव में एक रचनात्मक ज्यामिति इंजन नहीं है।
मेवप्लप

3
SymPy का ज्योमेट्री मॉड्यूल भी बहुत, बहुत धीमा हो सकता है। चूंकि यह प्रतीकात्मक गणित करने के लिए डिज़ाइन किया गया है, इसलिए यह अनुमानित फ्लोटिंग पॉइंट मानों पर सटीक अभिव्यक्तियों का उपयोग करना पसंद करता है। आमतौर पर ज्यामितीय गणनाओं में शामिल होने वाले वर्गमूलों की मात्रा को देखते हुए, आप कल्पना कर सकते हैं कि उन अभिव्यक्तियों को वास्तव में बहुत बड़ा और बहुत धीमा कैसे मिलता है।
दशक्रीडर

3
SymPy के लिए अपडेट में अब 3D लाइब्रेरी भी शामिल हैं
control_fd

इस उत्तर के लिए धन्यवाद। मैं अभी SymPy की कोशिश कर रहा हूं। पहला प्रयोग निष्पादित करने में काफी धीमा लग रहा था - यहां तक ​​कि एक साधारण 2 डी ऑब्जेक्ट के लिए भी। किसी भी विचार अगर यह वास्तविक समय में ज्यामिति प्रसंस्करण के लिए अच्छा है? धन्यवाद।
बिल

27

Shapely लोकप्रिय GEOS लाइब्रेरी के आसपास एक अच्छा अजगर आवरण है ।


6
शुद्ध "गणितीय ज्यामिति" (बोलने के लिए) के बजाय जीआईएस डेटा हैंडलिंग पर बहुत ध्यान केंद्रित किया जाना चाहिए
स्टेफानो बोरीनी

2
यह निश्चित रूप से जीआईएस समुदाय द्वारा उपयोग के लिए बनाया गया है, हालांकि यह भौगोलिक अनुमानों से जानबूझकर अनभिज्ञ है, जो इसे सामान्य-उद्देश्य यूक्लिडियन ज्यामिति पुस्तकालय के रूप में उपयोग करने के लिए ठीक बनाता है। मैं इसे एक नवजात कंप्यूटर गेम परियोजना में बहुत अधिक उपयोग करता हूं, और यह ठीक काम करता है।
जोनाथन हार्टले

15
3D ज्यामिति के बारे में यह क्या कहता है: "उदाहरणों का निर्माण करते समय एक तीसरे z निर्देशांक मूल्य का उपयोग किया जा सकता है, लेकिन ज्यामितीय विश्लेषण पर कोई प्रभाव नहीं पड़ता है। सभी ऑपरेशन xy विमान में किए जाते हैं।"
sebpiq

4
उपरोक्त टिप्पणी ने मुझे पता लगाने के लिए लगभग आधे घंटे की कोडिंग की। वास्तव में आंदोलनकारी।
मेवप्लप

2
जब केवल 3 डी के लिए विशेष रूप से प्रश्न पूछा जाता है तो केवल एक ही डाउनवोट क्यों?
जेमी बुल

14

मुझे pyeuclid को एक महान साधारण सामान्य उद्देश्य यूक्लिडियन गणित पैकेज मिला। हालाँकि लाइब्रेरी में आपके द्वारा बताई गई समस्याएँ नहीं हो सकती हैं, लेकिन इसका बुनियादी ढाँचा इतना अच्छा है कि आप इन पर आसानी से लिख सकते हैं।


10

CGAL में पायथन बाइंडिंग भी है।


3
अंतिम रिलीज़ 2009 थी, और वे अधूरी प्रतीत होती हैं। क्या कोई यह कह सकता है कि उन्होंने हाल ही में उनका उपयोग किया है, और यह कि वे बाइंडिंग का उपयोग करके प्रश्न में पूछी गई चीजें कर सकते हैं?
बेंजामिनगोल्ड

हां, मैंने जो कुछ बाइंडिंग की है, वे अधूरी हैं, जिनमें कुछ वास्तविक अच्छाइयों जैसे रचनात्मक ठोस ज्यामिति शामिल हैं। इसके अलावा, सीजीएएल की अत्यधिक जटिल प्रकृति अच्छी तरह से लपेटना मुश्किल बनाती है। अपने खुद के एक प्रोजेक्ट ( डेमाकिन ) में, मैं cffi मॉड्यूल और कुछ भयानक हैक का उपयोग कर रहा हूँ, सीधे अजगर से CGAL का उपयोग करने के लिए, इनलाइन C ++ स्निपेट का उपयोग कर रहा हूं।
पॉल हैरिसन

6

ज्यामिति-सरल में ~ 300 लाइनों में पॉइंट लाइन प्लेन मूवमेंट है, केवल सुन्न का उपयोग करके; जरा देखो तो।


6

मैं वास्तव में इस सवाल का एक अच्छा जवाब चाहता हूं, और ऊपर वाले ने मुझे असंतुष्ट छोड़ दिया है। हालाँकि, मैं अभी पाइथनोक में आया था जो बहुत अच्छा लग रहा है, इसके अलावा अच्छे डॉक्स की कमी है और अभी भी इंस्टॉलेशन (अभी तक पिपी संगत नहीं) के साथ कुछ परेशानी है। आखिरी अपडेट 4 दिन पहले (19 जून, 2011) था। यह OpenCascade लपेटता है जिसमें ज्यामिति और मॉडलिंग कार्यक्षमता का एक टन है। अजगर वेबसाइट से:

अजगर प्रोग्रामिंग भाषा के लिए एक 3 डी सीएडी / सीएई / पीएलएम विकास ढांचा है। यह उन्नत सामयिक और ज्यामितीय संचालन, डेटा विनिमय (STEP, IGES, STL आयात / निर्यात), 2D और 3D मेशिंग, कठोर बॉडी सिमुलेशन, पैरामीट्रिक मॉडलिंग जैसी सुविधाएँ प्रदान करता है।

[संपादित करें: मैंने अब अजगर को डाउनलोड किया है और कुछ उदाहरणों के माध्यम से काम करना शुरू किया है]

मेरा मानना ​​है कि यह उल्लिखित सभी कार्यों को पूरा कर सकता है, लेकिन मैंने इसे उपयोग करने के लिए अनजाने में पाया। यह लगभग पूरी तरह से SWIG रैपर से बनाया गया है, और परिणामस्वरूप, आज्ञाओं का आत्मनिरीक्षण मुश्किल हो जाता है।


मेरी राय में, यह बहुत अधिक बनाता है .... क्या हमें एक शुरुआत करनी चाहिए? मुझे जल्द ही अपनी किरण में कई ज्यामिति संचालन की आवश्यकता होगी, और यह संभवतः इसके लिए एक अलग गथबब बनाने के लिए समझ में आता है। मेरे पास पहले से ही कुछ कोड हैं, हम न तो खरोंच से शुरू करते हैं, लेकिन अगर यह पता चलता है कि यह काफी अच्छा नहीं है, तो इसे फिर से डिज़ाइन करना आसान होगा।
स्टेफानो बोरीनी

@Stefano Borini: यकीन है कि! हालाँकि, मैं आपकी मदद करने में प्रसन्न हूँ, लेकिन मैं आपकी योग्यता के स्तर के पास नहीं हूँ।
बेंजामिनगोल्डर

मैं इसी तरह से निराश हूं कि क्या उपलब्ध है। साधारण सामान के लिए, मैंने अपना कोड (जैसे एडोल्फस में ) किया है, लेकिन आज रात, उदाहरण के लिए, मुझे पॉलीहेड्रोन-पॉलीहेड्रॉन चौराहे की आवश्यकता है और यह मेरे लिए बहुत ही कदम है जो मुझे समझदार होना है। किसी भी मामले में, अगर यह आगे बढ़ता है, तो मुझे अंदर
गिनें

इस परियोजना का जन्म हुआ?
मर्मोज़

1
@ मर्मोज़ हां, लेकिन बहुत धीरे-धीरे। स्टेफानो ने पहले ही लाइब्रेरी की शुरुआत कर दी है, और मैं अपने स्वयं के अतिरिक्त लिख रहा हूं, लेकिन हम बहुत दूर नहीं गए हैं। देखें github.com/stefanoborini/python-geometry और github.com/bengolder/python-geometry
बेंजामिन

2

आप OpenOpt परियोजना, http://openopt.org से पायथन मॉड्यूल SpaceFuncs में दिलचस्पी ले सकते हैं

SpaceFuncs 2D, 3D, एन-डायमेंशनल जियोमेट्रिक मॉडलिंग के लिए उपकरण है जिसमें पैरामीट्रिक गणना, संख्यात्मक अनुकूलन और ज्यामितीय समीकरणों को हल करने की संभावनाएं हैं।


2

पायथन वाइल्ड मैजिक एक और SWIG रैपेड कोड है। हालाँकि यह एक गेमिंग लाइब्रेरी है, लेकिन आप पायथन एपीआई से किसी भी अवांछित ग्राफिक्स सामान को बाहर करने के लिए SWIG लाइब्रेरी फ़ाइल में हेरफेर कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.