के माध्यम से लाइन वक्र कैसे बनाएं I कई बिंदुओं के माध्यम से लाइन वक्र बनाने का एक तरीका ढूंढ रहे हैं। यह 3 बिंदुओं का उपयोग करना बेहतर होगा हालांकि मैंने माना है कि एक बिंदु में प्रवेश करने वाले रेखा के कोण को संदर्भ देने के लिए वक्र को संदर्भ देने के लिए संदर्भ की आवश्यकता हो सकती है।अंक
आम तौर पर एक प्रारंभ बिंदु पी 1, एक नियंत्रण बिंदु पी 2 और एक अंत बिंदु पी 3, रेखा पी 1 से पी 2 और फिर पी 2 से पी 3 तक वक्र होना चाहिए।
वास्तव में यहाँ प्रभाव का एक आदर्श उदाहरण है मैं प्राप्त करने के लिए करना चाहते हैं:
मैं यह कर सकता है मैं वास्तव में सदा आभारी होंगे!
जावा में अब तक, मैं चीजों को इस तरह के रूप QuadCurve2D.Double, Cub icCurve2D.Double और भी Path2D.Double (Path2D.Double साथ curveTo का प्रयोग करके) के साथ प्रयोग करना की कोशिश की है, लेकिन कोई लाभ नहीं हुआ - घटता जो चित्रित कर रहे हैं यहां तक कि के माध्यम से गुजर के करीब नहीं हैं नियंत्रण बिंदु निर्दिष्ट। यहाँ
और कोड मैं अंक और छवि में घटता उत्पन्न करने के लिए प्रयोग किया जाता है:
यहाँ तरीकों मैं अब तक की कोशिश की है की एक छवि है
Graphics2D g = (Graphics2D) window.getGraphics();
g.setColor(Color.blue);
int d = 4;
// P0
int x0 = window.getWidth()/8;
int y0 = 250;
g.drawString("P0", x0, y0 + 4*d);
g.fillRect(x0, y0, d, d);
// P1
int x1 = (window.getWidth()/7)*2;
int y1 = 235;
g.drawString("P1", x1, y1 + 4*d);
g.fillRect(x1, y1, d, d);
// P2
int x2 = (window.getWidth()/2);
int y2 = 200;
g.drawString("P2", x2, y2 - 2*d);
g.fillRect(x2, y2, d, d);
// P3
int x3 = (window.getWidth()/7)*5;
int y3 = 235;
g.drawString("P3", x3, y3 + 4*d);
g.fillRect(x3, y3, d, d);
// P4
int x4 = (window.getWidth()/8)*7;
int y4 = 250;
g.drawString("P4", x4, y4 + 4*d);
g.fillRect(x4, y4, d, d);
g.setColor(Color.cyan);
QuadCurve2D quadCurve = new QuadCurve2D.Double(x0, y0, x2, y2, x4, y4);
g.draw(quadCurve);
g.setColor(Color.YELLOW);
CubicCurve2D.Double cubicCurve = new CubicCurve2D.Double((double)x0, (double)y0,
(double)x1, (double)y1,
(double)x2, (double)y2,
(double)x4, (double)y4);
g.draw(cubicCurve);
g.setColor(Color.red);
Path2D.Double path1 = new Path2D.Double();
path1.moveTo(x1, y1);
path1.curveTo(x0, y0, x2, y2, x4, y4);
g.draw(path1);
अंक के माध्यम से गुजरने के लिए घुमावदार रेखा की इच्छा रखने के मेरे कारण यह है कि मैं लिखे गए रेखा ग्राफ पर शिखर के बीच संक्रमण को 'चिकनाई' करना चाहता हूं। किसी ने इसका उल्लेख करने से पहले जेएफरी चार्ट विकल्प नहीं है। मैं समझता हूं कि विभिन्न प्रकार के वक्र और स्प्लिंस का उपयोग किया जाता है, लेकिन मुझे समझ में नहीं आता कि वे कैसे काम करते हैं या मेरी आवश्यकताओं के अनुरूप कुछ कैसे कार्यान्वित करते हैं।
मैं किसी भी मदद की पेशकश के लिए वास्तव में आभारी रहूंगा - अग्रिम धन्यवाद।
मुझे स्पष्टीकरण दे सकते हैं कि आप अंक की एक सरणी के माध्यम से वक्र खींचने में सक्षम होने के लिए कह रहे हैं? –
हां, इसलिए मान लें कि इरविन-हॉल स्पलीन पर प्रत्येक बिंदु सरणी में एक तत्व है। –