के साथ ड्राइंग आर्क मुझे ग्राफिक्सपाथ का उपयोग करके एक चाप खींचने और प्रारंभिक, औसत और अंतिम अंक रखने की आवश्यकता है। चाप उन्हें पास करना है।सी # 3 अंक
मैंने कोशिश की। ड्राक्यूर्वे और ड्रॉबेज़ियर लेकिन परिणाम बिल्कुल एक चाप नहीं है।
मैं क्या कर सकता हूं?
समाधान:
double d = 2 * (a.X - c.X) * (c.Y - b.Y) + 2 * (b.X - c.X) * (a.Y - c.Y);
double m1 = (Math.Pow(a.X, 2) - Math.Pow(c.X, 2) + Math.Pow(a.Y, 2) - Math.Pow(c.Y, 2));
double m2 = (Math.Pow(c.X, 2) - Math.Pow(b.X, 2) + Math.Pow(c.Y, 2) - Math.Pow(b.Y, 2));
double nx = m1 * (c.Y - b.Y) + m2 * (c.Y - a.Y);
double ny = m1 * (b.X - c.X) + m2 * (a.X - c.X);
double cx = nx/d;
double cy = ny/d;
double dx = cx - a.X;
double dy = cy - a.Y;
double distance = Math.Sqrt(dx * dx + dy * dy);
Vector va = new Vector(a.X - cx, a.Y - cy);
Vector vb = new Vector(b.X - cx, b.Y - cy);
Vector vc = new Vector(c.X - cx, c.Y - cy);
Vector xaxis = new Vector(1, 0);
float startAngle = (float)Vector.AngleBetween(xaxis, va);
float sweepAngle = (float)(Vector.AngleBetween(va, vb) + Vector.AngleBetween(vb, vc));
path.AddArc(
(float)(cx - distance), (float)(cy - distance),
(float)(distance * 2), (float)(distance * 2),
startAngle, sweepAngle);
:
मैं आकर्षित करने के लिए क्या मैं इस एल्गोरिथ्म के साथ करना चाहता था प्रबंधित कोड लिखने के कुछ घंटों के बाद (3 प्वाइंट एक, ख, ग और एक GraphicsPath पथ दे)
क्या आपका मतलब गोलाकार चाप है, या कोई चाप करेगा? –
परिपत्र, मैं – Keeper