दिलचस्प पोस्ट
जावा में उपयोगकर्ता की होम डाइरेक्टरी को खोजने का सबसे अच्छा तरीका क्या है? MySQL "NOT IN" क्वेरी 3 तालिकाएं सी # .Equals (), .ReferenceEquals () और == ऑपरेटर त्रुटि जाँच के लिए रूपांतरण समारोह अच्छा माना जाता है? आर / जीजीप्लोट 2 में नियमित अक्षरों के साथ मिश्रित गणितीय प्रतीकों और सबकुछ रखकर कोयोनर 2 @ व्यूबिल * एनजीआईफ़ में (मोंगोडीबी जावा) $ सरणी में धक्का मैं एक विंडोज़ फार्म के सिस्टम मेनू को कैसे कस्टमाइज़ कर सकता हूं? मैं एंड्रॉइड सपोर्ट लाइब्रेरी के लिए जावाडॉक कैसे सक्षम कर सकता हूं? आप परिपत्र डेटा के एक सेट के औसत की गणना कैसे करते हैं? jquery दस्तावेज़ के भीतर या बाहर के कार्यों को तैयार क्या आपके .gitconfig में एक फ़ाइल शामिल करना संभव है? Node.js में, मैं अपनी अन्य फ़ाइलों से "शामिल" फ़ंक्शन कैसे करूं? सी ++ सिंगलटन डिजाइन पैटर्न जब कोई बच्चा एंकर पर क्लिक किया जाता है तो मैं फ़ायरिंग से किसी पैरेंट के ऑनक्लिक ईवेंट को कैसे रोकूं?

वसंत व्यवहार सिमुलेशन

असल में, मैं चित्रित छवि पर वसंत व्यवहार अनुकरण करना चाहता हूँ। मैं इसे कुछ पुनरावृत्तियों के माध्यम से चलाने के लिए इसे ऊपर और नीचे स्केलिंग करना चाहता हूं (जैसा कि एक वसंत पर तय किया गया है)।

उदाहरण के लिए, मैं इस वर्ग के लिए नेट लीड पर FloatSpring.java

यह बिन्दु A को स्थानांतरित करने के लिए आवश्यक गणना प्रदान करनी चाहिए जो कि वसंत-समान प्रभाव लागू करने के लिए बी को इंगित करता है जो विभिन्न फ्लोटस्प्रिंग क्लास सेटिंग्स पर निर्भर करता है। समस्या यह है कि मुझे इसका एक स्पष्ट उदाहरण नहीं मिला है कि इसका उपयोग कैसे किया जाए।

मैंने इस छोटे से उदाहरण के लिए FloatSpring का परीक्षण किया:

 public static void main ( String[] args ) { // Some image to bounce final ImageIcon icon = new ImageIcon ( WebProgressOverlayExample.class.getResource ( "icons/ava1.jpg" ) ); // Component to paint image on JComponent spring = new JComponent () { // Zoom value (1f = 100% = normal size) float zoom = 1f; { // Basic spring settings final FloatSpring fs = new FloatSpring ( 100 ); fs.setPosition ( zoom ); // Animation delay final int delay = 1000 / 24; // Animator new Timer ( delay, new ActionListener () { private float elapsed = 0f; public void actionPerformed ( ActionEvent e ) { // Increasing elapsed time and updating spring elapsed += delay; fs.update ( 3f, elapsed ); // Updating zoom value and component zoom = fs.getPosition (); repaint (); } } ).start (); } protected void paintComponent ( Graphics g ) { super.paintComponent ( g ); // Scaled image int width = Math.round ( icon.getIconWidth () * zoom ); int height = Math.round ( icon.getIconHeight () * zoom ); g.drawImage ( icon.getImage (), getWidth () / 2 - width / 2, getHeight () / 2 - height / 2, this ); } public Dimension getPreferredSize () { return new Dimension ( 500, 500 ); } }; JFrame frame = new JFrame (); frame.add ( spring ); frame.pack (); frame.setLocationRelativeTo ( null ); frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ); frame.setVisible ( true ); } 

इस उदाहरण में zoom प्रॉपर्टी को टाइमर चक्र के भीतर 1f से 3f तक उछाल करनी चाहिए और अंत में घटक छवि पर 3X ज़ूम पर प्रदर्शित होने का नेतृत्व करना चाहिए। सरल एनिमेटेड संक्रमण की तरह कुछ

फ्लोटस्पिंग क्लास ठीक होना चाहिए – मैं समझ नहीं पाया कि इसका उपयोग कैसे करना है। सटीक होने के लिए – मुझे क्या चाहिए कि मैं springK रूप में निर्दिष्ट springK और dampingK मूल्यों को और time संपत्ति के उद्देश्य को स्पष्ट नहीं किया जाना चाहिए …

मैं वहां किसी भी मदद की सराहना करता हूं।

Solutions Collecting From Web of "वसंत व्यवहार सिमुलेशन"

यहां फ़्लोटस्प्रिंग का उपयोग करते हुए एक काम sscce है FloatSpring

बंजी

 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractAction; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.Timer; import javax.swing.UIManager; /** * @see http://stackoverflow.com/a/11233735/230513 */ public class Test { private static Spring spring = new Spring(); public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(spring); frame.add(new JButton(new AbstractAction("Start") { @Override public void actionPerformed(ActionEvent e) { spring.start(); } }), BorderLayout.SOUTH); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); spring.start(); } }); } private static class Spring extends JComponent { private static final int SIZE = 500; private static final int DELAY = 1000 / 20; // ~20Hz private final Icon icon = UIManager.getIcon("OptionPane.informationIcon"); private final FloatSpring fs = new FloatSpring(42); private final int target = 0; private final float delta = 1f / SIZE; private float elapsed = 0f; private Timer timer = new Timer(DELAY, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if ((int) fs.getPosition() < (target + 1)) { timer.stop(); return; } elapsed += delta; fs.update(target, elapsed); repaint(); } }); @Override protected void paintComponent(Graphics g) { super.paintComponent(g); int x = (getWidth() - icon.getIconWidth()) / 2; int y = (int) fs.getPosition(); icon.paintIcon(this, g, x, y); int xc = x + icon.getIconWidth() / 2; g.drawLine(xc, 0, xc, y); } @Override public Dimension getPreferredSize() { return new Dimension(SIZE / 2, SIZE); } public void start() { timer.stop(); elapsed = 0; fs.setPosition(SIZE - icon.getIconHeight()); fs.setVelocity(0); timer.start(); } } }