2010-04-25 8 views
7

मैं आगामी परीक्षा के लिए मेरी स्विंग क्षमताओं का अभ्यास कर रहा हूँ के साथ 'biohazard' आकर्षित करने के लिए, और तला हुआ मुझे विचार प्रदान किया इस तरह biohazard संकेत आकर्षित करने के लिए:कैसे स्विंग

alt text http://img62.imageshack.us/img62/8372/lab6b.gif

मैं के साथ हलकों आकर्षित कर सकता है Elipse2D, लेकिन फिर मुझे उन 3 त्रिकोणों को काटने की जरूरत है। कोई विचार है कि मैं यह कैसे कर सकता हूं?

+11

में पाया जा सकता मैं जानता हूँ कि मैं पंडिताऊ जा रहा हूँ, लेकिन है कि विकिरण खतरा प्रतीक नहीं है, बायोहाज़र्ड;) यद्यपि यदि आप अभ्यास कर रहे हैं तो स्विंग के साथ वास्तविक बायोहाज़र्ड प्रतीक एक और अच्छा हो सकता है। इसमें कई मंडलियां हैं :) (http://en.wikipedia.org/wiki/File:Biohazard.svg)। –

+1

@Rich यह SO के लिए एक बहुत अच्छी कोडिंग प्रतियोगिता होगी :) –

+0

@ क्रिस: मैंने असली बायोहाज़र्ड लागू किया लेकिन मुझे नहीं लगता कि यह इसे रखने का सही स्थान है .. – bragboy

उत्तर

5

आप इसके लिए जावा 2 डी और कैनवास का उपयोग कर सकते हैं। जिन चीजों का आप उपयोग कर रहे हैं वे हैं सर्कल और आर्क। आपके पास 30 डिग्री के साथ तीन चाप होनी चाहिए।

मैंने फ्रेम पर सरल ग्राफिक्स का उपयोग करने की कोशिश की।

यहाँ एक प्रयास

import java.awt.Color; 
import java.awt.Graphics; 

import javax.swing.JComponent; 
import javax.swing.JFrame; 

public class Biohazard { 
    public static void main(String[] args) { 
     new Biohazard(); 
    } 

    public Biohazard() { 
     JFrame frame = new JFrame("Biohazard"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(new MyComponent()); 
     frame.setSize(260, 280); 
     frame.setVisible(true); 
    } 

    public class MyComponent extends JComponent { 
     public void paint(Graphics g) { 
      int height = 120; 
      int width = 120; 
      g.setColor(Color.yellow); 
      g.fillOval(60, 60, height, width); 
      g.setColor(Color.black); 
      g.drawOval(60, 60, height, width); 

      int swivels = 6; 
      int commonx, commony, commonh, commonw; 

      for(int i=0;i<swivels;i++){ 
       commonx = commony = 120-i*10; 
       commonh = commonw = i*20; 
       g.drawArc(commonx, commony, commonh, commonw, 60 , 60); 
       g.drawArc(commonx, commony, commonh, commonw, 180 , 60); 
       g.drawArc(commonx, commony, commonh, commonw, 300 , 60); 
      } 
     } 
    } 
} 

मूल एक है: स्रोत कोड http://pastebin.com/HSNFx7Gq

enter image description here

1

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

3

आप कक्षा का उपयोग start और extent डिग्री में पैरामीटर निर्दिष्ट करके प्रत्येक पंक्ति को आकर्षित करने के लिए कर सकते हैं।