نمایش نتایج 1 تا 12 از 12

نام تاپیک: گرافیک مشکل رسم اشکال غیر هندسی

  1. #1

    گرافیک مشکل رسم اشکال غیر هندسی

    سلام دوستان

    من قبلا یک تاپیک زده بودم که برای ترسیم اشکال غیر هندسی مثل این شکل


    حالا من با استفاده از دستور FillClosedCurveاین حور شکلی رو ایجاد میکنم

    اما این جور ترسم ها جند تا مشکل در زمان کار با برنامه ایجاد میکنه
    1- وقتی که دو نقطه داشه باشی کلا هیچ شکلی نمیکشه
    2- اگه 3 نقطه در یک خط قرار بگیره یک خط باریک میکشه مثل این شکل


    3- و مشگل اصلی اینکه وقتی نقطه ها از 3 تا بالا تر میره یک سری شکل های مختلف میکشه مثل این شکل


    خالا میشه راهنمایی کنید که باید چطوری این کارو انجام بدم که برای همه نقطا تقربا مثل همنون عکس اول که برای 3 تا نقطه هست را رسم کنه یا یه چیری مثل عکس اول

    با تشکر

  2. #2

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    یک سوال دیگه کلا میشه این جور الگوریتمی برای رسم همچنین شکل های نوشت -یک راه حل به من بدید لطفا

  3. #3
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    سلام
    خوب دوست عزیز شما بفرمایید از چه روشی استفاده می کنید مشکلتون در رسم Arc است یا ... توضیحاتتون کافی نیست کشیدن اون شکل ها کاره سختی نیست شما بگویید تا کجا و با چه دستوراتی پیش رفته اید بقیش رو بهتون کمک می کنیم .
    یعنی چی الگوریتم خواصی دارد؟

  4. #4

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    ببنید دوست من شاید من منظورم رو بد گفتم -من یک نرم افزار برای Graph و hypergraph دارم مینویسم حالا ابتدا میام یک سری نقطه توس صفخه قرار میدم که هر کدوم مختصات خاص خودشو داره - بعد توی قسمت hypergraph میام چند تا نقطه را اتخاب میکنم که اینا با هم یک hypergraph را تشکیل میدن مثل همون عکس اول که هر رنگ نماینگر یک hypergraph است - حالا من توی روش که تو برنامه استفاده کردم مشکلات بالا بر میخورم -من تقریبا یک شکلی مثل این شکل میخوام

    و یا تقریبا مثل شکل بالا




    GraphicsPath path = new GraphicsPath();
    path.AddLines(pt1.ToArray());
    g.FillClosedCurve(test2, path.PathPoints);



    با تشکر

  5. #5
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    من فکر می کنم شما point ها تون رو به ترتیب به دستور FillClosedCurve تحویل نمی دهید چون از path.PathPoints استفاده می کنید ترتیب نقاط بهم می خورد الان من این دو دستور رو استفاده می کنم و درست جواب می دهد:
    Point[] p=new Point[]{new Point(50,10),new Point(20,50),new Point(80,50)};
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b,p);

    این همون مثلث رو می سازه که درست هم هست همانطور که انتظار دارم.
    این یکی هم مربعی رسم می کند که انتظار دارم:
     Point[] p = new Point[] { new Point(50, 100), new Point(200, 100), new Point(200, 200), new Point(50, 200) };
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b, p);

    این کد ها رو تست کنید شاید منظورتون همین باشه.و شما در ترتیب نقاط ورودی مشکل دارید این نکته رو هم توجه کنید که اگر نقطه اول و آخر رو یکی ندهید خودش نقطه آخر را به اولین نقطه ای که در داخل آرایه وجود دارد وصل می کند.
    شایدم باز هم متوجه نشده باشم.!

  6. #6
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    سلام دوستان.
    من ازین کدهایی که شما نوشتین سردر نمیارم میشه برام توضیح بدین؟ممنون میشم.
    من کدهاتون رو کپی کردم ولی g رو نمیشاسه باید چیکار کنم؟
    با تشکر...

  7. #7

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    نقل قول نوشته شده توسط Saeed.Masoumi مشاهده تاپیک
    من فکر می کنم شما point ها تون رو به ترتیب به دستور FillClosedCurve تحویل نمی دهید چون از path.PathPoints استفاده می کنید ترتیب نقاط بهم می خورد الان من این دو دستور رو استفاده می کنم و درست جواب می دهد:
    Point[] p=new Point[]{new Point(50,10),new Point(20,50),new Point(80,50)};
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b,p);

    این همون مثلث رو می سازه که درست هم هست همانطور که انتظار دارم.
    این یکی هم مربعی رسم می کند که انتظار دارم:
     Point[] p = new Point[] { new Point(50, 100), new Point(200, 100), new Point(200, 200), new Point(50, 200) };
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b, p);

    این کد ها رو تست کنید شاید منظورتون همین باشه.و شما در ترتیب نقاط ورودی مشکل دارید این نکته رو هم توجه کنید که اگر نقطه اول و آخر رو یکی ندهید خودش نقطه آخر را به اولین نقطه ای که در داخل آرایه وجود دارد وصل می کند.
    شایدم باز هم متوجه نشده باشم.!
    مرسی نکته مهمی رو گفتی من فکر نمیکردم که ترتیب مهم باشه -فقط راهی نداره که ترتیب مهم نباشه جون کاربر که نمودونه باید چطوری وارد کنه -ووقتی تعداد نقطه ها زیاد میشه دیگه تشخص اینکه ترتیب باید به چه شکلی باشه سخته

  8. #8

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    نقل قول نوشته شده توسط troski مشاهده تاپیک
    سلام دوستان.
    من ازین کدهایی که شما نوشتین سردر نمیارم میشه برام توضیح بدین؟ممنون میشم.
    من کدهاتون رو کپی کردم ولی g رو نمیشاسه باید چیکار کنم؟
    با تشکر...



    Graphics g;

    الان کد من کار نمیکنه جون باید ارایه ساخته بشه مگه نقاط رو حودت دستی وارد کنی

  9. #9
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    ممنونم ولی من کد زیر رو نوشتم ولی کار نمیکنه و این خطا رو میده:
    Use of unassigned local variable 'g' 


    اینم کد :
    private void Form1_Load(object sender, EventArgs e)
    {
    Graphics g;
    Point[] p = new Point[] { new Point(50, 10), new Point(20, 50), new Point(80, 50) };
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b, p);
    }

    با تشکر.

  10. #10

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    نقل قول نوشته شده توسط troski مشاهده تاپیک
    ممنونم ولی من کد زیر رو نوشتم ولی کار نمیکنه و این خطا رو میده:
    Use of unassigned local variable 'g' 


    اینم کد :
    private void Form1_Load(object sender, EventArgs e)
    {
    Graphics g;
    Point[] p = new Point[] { new Point(50, 10), new Point(20, 50), new Point(80, 50) };
    Brush b = Brushes.Brown;
    g.FillClosedCurve(b, p);
    }

    با تشکر.
    Graphics g; بصورتpublic تغریف کن

  11. #11
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    ممنونم ولی حالا این خطا رو میده:
    Object reference not set to an instance of an object.

    ممنون میشم کدتون رو بذارید تا بتونم بیشتر متوجه بشم.
    مرسی

  12. #12

    نقل قول: گرافیک مشکل رسم اشکال غیر هندسی

    دوست عزیز شما باید مفاهیم اولیه gdi رو بدونید لطفا لینک زیر رو مطالعه کنید
    http://www.c-sharpcorner.com/UploadF.../gdi_plus.aspx

    لطفا در مورد مشکلی که در تاپیک مطرح شده بحث کنید

    با تشکر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •