2012-12-02 11 views
13

हे, मैं एक त्वरित कार्यक्रम लिख रहा था और कुछ ऐसा हुआ जहां मुझे टकराव का पता लगाने के लिए एक सर्कल का उपयोग करने की आवश्यकता है। लेकिन जहां तक ​​मुझे पता है, केवल आयताकार वर्ग है जिसमें .intersects (प्वाइंट पी) विधि है। क्या एक सर्कल की तरह कुछ भी है जिसे मैं उसी तरह इस्तेमाल कर सकता हूं?क्या जावा में एक सर्कल क्लास है आयत वर्ग

+0

मुझे पता नहीं है। – duffymo

+1

आप [Eclipse2D] (http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Ellipse2D.html) का उपयोग कर सकते हैं, जिसमें 'x (y, y) 'है। – Vulcan

+1

हां, मैं बस दूसरे दिन सोच रहा था कि ओरेकल ने हमें मानक पुस्तकालयों में डोडकाहेड्रॉन क्लास समेत सभी असंतोष नहीं किया था :-) – paxdiablo

उत्तर

16

Ellipse2D नामक एक कक्षा है java.awt.geom पैकेज जो आप उपयोग कर सकते हैं, क्योंकि इसमें कुछ विधियां हैं जो आप खोज रहे हैं। इसकी ऊंचाई के बराबर चौड़ाई वाली एक अंडाकार एक सर्कल है।

boolean contains(double x, double y) 

टेस्ट करता है, तो निर्दिष्ट निर्देशांक, के रूप में insideness की परिभाषा द्वारा वर्णित Shape की सीमा के अंदर कर रहे हैं:

contains के लिए भार के में से एक आप चक्र सूत्री टकराव के लिए परीक्षण करने के लिए अनुमति देता है ।

एक अन्य समारोह कहा जाता intersects आप वृत्त-आयत टकराव के लिए परीक्षण करने के लिए अनुमति देता है:

boolean intersects(double x, double y, double w, double h) 

टेस्ट अगर Shape के इंटीरियर के लिए एक निर्दिष्ट आयताकार क्षेत्र के इंटीरियर काटती है।

ध्यान दें कि Ellipse2D एक सार वर्ग है; आप अपने नेस्टेड सबक्लास Ellipse2D.Double या Ellipse2D.Float में से एक का उपयोग करेंगे, आयामों को संग्रहीत करने के लिए उपयोग किए जाने वाले डेटा प्रकार का एकमात्र अंतर।

+0

+1, लेकिन बिंदु चौराहे के लिए अधिक उपयुक्त विधि 'है (डबल एक्स, डबल वाई) '। – Vulcan

+0

बिल्कुल सही, बहुत बहुत धन्यवाद – user1871085

1

एक ellipse2D है, यह वही है जिस तरह एक वर्ग एक आयत है एक सर्कल एक अंडाकार है।

http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Ellipse2D.html

+0

जावा 7 एपीआई में अपने लिंक को रीडायरेक्ट करें, मैं आपको वोट दूंगा (जावा 1.4 लगभग 10 साल पुराना है: पी) – MadProgrammer

+0

आह आपको बहुत धन्यवाद। मैं इसे एक कोशिश करूँगा। – user1871085

+0

अनुरोध के रूप में अपडेट किया गया। – ThePerson

1

java.awt.Shape too. और सभी वर्ग है जो इसे लागू करता है: Arc2D, Arc2D.Double, Arc2D.Float, क्षेत्र, BasicTextUI.BasicCaret, CubicCurve2D, CubicCurve2D.Double, CubicCurve2D.Float, DefaultCaret, Ellipse2D, Ellipse2D। डबल, एलीपसे 2 डी। फ्लोट, जनरलपाथ, लाइन 2 डी, लाइन 2 डी। डबल, लाइन 2 डी। फ्लोट, पथ 2 डी, पथ 2 डी। डबल, पाथ 2 डी। फ्लोट, पॉलीगॉन, क्वाडकुरवे 2 डी, क्वाडकुरवे 2 डी। डबल, क्वाडकुरवे 2 डी। फ्लोट, आयत, आयताकार 2 डी, आयताकार 2 डी। डबल, आयत 2 डी। फ्लोट, आयताकार आकार, RoundRectangle2D, RoundRectangle2D.Double, RoundRectangle2D.Float

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