PDA

View Full Version : نحوه ی رسم نمودار یک سهمی از طریق معادله



"برنامه نویس"
چهارشنبه 28 فروردین 1387, 15:29 عصر
سلام
چه طوری میشه فرمول معادله رو بدیم و برامون رسم کنه؟
مرسی

gdevnb
چهارشنبه 28 فروردین 1387, 18:02 عصر
دوست عزیز منظورتون چیه؟
دنبال کمپوننتی , میخوای کد بنویسی یا ...؟
معادله رو به صورت یه لیست پیوندی یا آرایه (n*2)می تونی از ورودی بگیری.
و برای رسم هم بهش ورودی x بدی و خروجی y بگیری.بعد هم یه سری مکانها رو داری و رسمش میکنی.
البته راههای بهتری هم وجود داره من همین به ذهنم رسید
موفق باشید.

"برنامه نویس"
پنج شنبه 29 فروردین 1387, 18:14 عصر
سلام
منظورم اینه که مثلا کاربر فرمول سهمی(ax^2+bx+c=0)رو بزنه و برنامه در یک صفحه این سهمی رو رسم کنه .در صفحه خاص چاپ بشه خیلی مهم است.
یعنی یه چیزی مثل microsoft math .
متشکرم..........

رافعی مهدی
پنج شنبه 29 فروردین 1387, 19:21 عصر
سلام
تا اونجایی که اطلاع دارم برای رسم منحنی ها لازم است صورت کلی معادله را داشته باشید و کاربر تنها ثوابت مورد نظر (ضرایب معادله) را وارد نماید. در غیر این صورت باید از یک کامپایلر داخلی استفاده کنید. به این ترتیب که یک کامپایلر داخل برنامه طراحی کنید تا معادلات را بفهمد. من قبلاً این کار را کرده ام و نتیجه اینکه آنقدر پر زحمت است که بهتر است از همان راه حل اول استفاده کنید. بعد مجموعه ای از نقاط را در بازه ای (که آن را هم کاربر می تواند تعریف نماید) با step size دلخواه از یک حلقه ی for ساده بدست می آورید و آنها را با استفاده از دستور AddLines از فضای نام System.Drawing.Drawing2D به یک مسیر به شکل زیر اضافه کنید. کد زیر مثال خوبی از انجام این کار است:
privatevoid AddLinesExample(PaintEventArgs e)
{
// Create a symetrical triangle using an array of points.

Point[] myArray =
{
newPoint(30,30),
newPoint(60,60),
newPoint(0,60),
newPoint(30,30)
};
//Create a path and add lines.

GraphicsPath myPath = newGraphicsPath();
myPath.AddLines(myArray);
// Draw the path to the screen.

Pen myPen = newPen(Color.Black, 2);
e.Graphics.DrawPath(myPen, myPath);
}

البته در اینجا تا حدی ظاهر کد به هم ریخت که با کپی کردن آن در Editor سی شارپ نباید مشکلی وجود داشته باشد.