Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > .NET
Перезагрузить страницу Упрощение кода
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Оля112 Оля112 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.01.2015
По умолчанию Упрощение кода - 04.01.2015, 16:00

Помогите пожалуйста упростить данный код
csharp Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Printing;
using System.Drawing.Drawing2D;

namespace дз
{
    public partial class Form1 : Form
    {
        public double MM = 200 / 25.4;
        public double D, H, d, d1, d2, d3, d4, d5, d6, h, h1, h2, l, l1, c, c1, k, n;
        public double sqrt2_2 = Math.Sqrt(2) / 2;
        public static PointF Point1, Point2;
        public static PointF[] point = { new PointF(0, 0) };
        public static Font font = new Font("Arial", 12);
        public string d1str = "d1", d3str = "d3",  hstr = "h",  cstr = "c";
        public static SolidBrush brush = new SolidBrush(Color.Black);
       
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
           
            double D=32, H=48,  h = 23, h1 = 12, h2 = 10, d=18, d1 = 20, d2=12, d3=14.2, d4=17, d5=6, d6=3, l=26, l1=3, c=1.5, c1=2, k=4, n=8;
            #region Перевод данных в миллиметры и конвертирование в integer
            int DMM = Convert.ToInt32(Math.Round(D * MM));
            int cMM = Convert.ToInt32(Math.Round(c * MM));
            int c1MM = Convert.ToInt32(Math.Round(c1 * MM));
            .....
            int nMM = Convert.ToInt32(Math.Round(n * MM));
            #endregion
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(Color.WhiteSmoke);
            #region Штриховка
            System.Drawing.Drawing2D.HatchBrush hatchBrush = new HatchBrush(HatchStyle.WideDownwardDiagonal, Color.Black, Color.White);
            //1
            Point sht1 = new Point(424 + dMM / 2 - 20, 362 - HMM + hMM + c1MM);
            Point sht2 = new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM);
            ....
            Point sht25 = new Point(424 + dMM / 2, 362 - HMM + hMM);

            PointF[] Polig1 =
             {
                 sht1,
                 sht2,
                ...
                 sht25,
             };
            pictureBox1.CreateGraphics().FillPolygon(hatchBrush, Polig1);
            #endregion
            #region Отрисовываем деталь
            SolidBrush solidBrush = new SolidBrush(Color.WhiteSmoke);
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424-DMM/2, 362-HMM+hMM+c1MM), new Point(424-DMM/2, 362+hMM-c1MM));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424, 362 +600), new Point(424 , 362-600));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424+600, 362 ), new Point(424-600, 362));
             .....
            #endregion
        }

        private void button2_Click(object sender, EventArgs e)
        {

            double D = 40, H = 60, h = 28, h1 = 15, h2 = 1, d = 22, d1 = 26, d2 = 16, d3 = 17.2, d4 = 21, d5 = 6, d6 = 4, l = 33, l1 = 3.5, c = 1.5, c1 = 2.5, k = 4, n = 8;
            #region Перевод данных в миллиметры и конвертирование в integer
            int DMM = Convert.ToInt32(Math.Round(D * MM));
            int cMM = Convert.ToInt32(Math.Round(c * MM));
            .....
            int nMM = Convert.ToInt32(Math.Round(n * MM));
            #endregion
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(Color.WhiteSmoke);
            #region Штриховка
            System.Drawing.Drawing2D.HatchBrush hatchBrush = new HatchBrush(HatchStyle.WideDownwardDiagonal, Color.Black, Color.White);
            //1
            Point sht1 = new Point(424 + dMM / 2 - 20, 362 - HMM + hMM + c1MM);
            Point sht2 = new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM);
            Point sht3 = new Point(424 - DMM / 2, 362 + hMM - c1MM);
            ...
            Point sht25 = new Point(424 + dMM / 2, 362 - HMM + hMM);

            PointF[] Polig1 =
             {
                 sht1,
                 sht2,
                 ...
                 sht25,
             };
            pictureBox1.CreateGraphics().FillPolygon(hatchBrush, Polig1);
            #endregion
            #region Отрисовываем деталь
            SolidBrush solidBrush = new SolidBrush(Color.WhiteSmoke);
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM), new Point(424 - DMM / 2, 362 + hMM - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424, 362 + 600), new Point(424, 362 - 600));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424 + 600, 362), new Point(424 - 600, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2, 362 - HMM + hMM + c1MM), new Point(424 + DMM / 2, 362 + hMM - c1MM));
             .....
            #endregion


        }

        private void button3_Click(object sender, EventArgs e)
        {
            double D = 50, H =75, h = 36, h1 =18, h2 = 15, d = 28, d1 = 30, d2 = 20, d3 = 22, d4 = 26, d5 = 8, d6 = 5, l = 42, l1 = 4.5, c = 2, c1 = 3, k = 4, n = 8;

            #region Перевод данных в миллиметры и конвертирование в integer
            int DMM = Convert.ToInt32(Math.Round(D * MM));
            int cMM = Convert.ToInt32(Math.Round(c * MM));
            .....
            int nMM = Convert.ToInt32(Math.Round(n * MM));
            #endregion
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(Color.WhiteSmoke);
            #region Штриховка
            System.Drawing.Drawing2D.HatchBrush hatchBrush = new HatchBrush(HatchStyle.WideDownwardDiagonal, Color.Black, Color.White);
            //1
            Point sht1 = new Point(424 + dMM / 2 - 20, 362 - HMM + hMM + c1MM);
            Point sht2 = new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM);
            Point sht3 = new Point(424 - DMM / 2, 362 + hMM - c1MM);
            ....
            Point sht25 = new Point(424 + dMM / 2, 362 - HMM + hMM);

            PointF[] Polig1 =
             {
                 sht1,
                 sht2,
                 sht3,
                 ......
                 sht25,
             };
            pictureBox1.CreateGraphics().FillPolygon(hatchBrush, Polig1);
            #endregion
            #region Отрисовываем деталь
            SolidBrush solidBrush = new SolidBrush(Color.WhiteSmoke);
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM), new Point(424 - DMM / 2, 362 + hMM - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424, 362 + 600), new Point(424, 362 - 600));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424 + 600, 362), new Point(424 - 600, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2, 362 - HMM + hMM + c1MM), new Point(424 + DMM / 2, 362 + hMM - c1MM));
            ....

            #endregion
        }
    }
}

Последний раз редактировалось Оля112; 04.01.2015 в 16:04
Ответить с цитированием
  (#2 (permalink)) Старый
Оля112 Оля112 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.01.2015
По умолчанию 04.01.2015, 16:04

полный код для одной кнопки в form
csharp Код:
private void button1_Click(object sender, EventArgs e)
        {
           
            double D=32, H=48,  h = 23, h1 = 12, h2 = 10, d=18, d1 = 20, d2=12, d3=14.2, d4=17, d5=6, d6=3, l=26, l1=3, c=1.5, c1=2, k=4, n=8;
            #region Перевод данных в миллиметры и конвертирование в integer
            int DMM = Convert.ToInt32(Math.Round(D * MM));
            int cMM = Convert.ToInt32(Math.Round(c * MM));
            int c1MM = Convert.ToInt32(Math.Round(c1 * MM));
            int HMM = Convert.ToInt32(Math.Round(H * MM));
            int hMM = Convert.ToInt32(Math.Round(h * MM));
            int h1MM = Convert.ToInt32(Math.Round(h1 * MM));
            int h2MM = Convert.ToInt32(Math.Round(h2 * MM));
            int lMM = Convert.ToInt32(Math.Round(l * MM));
            int l1MM = Convert.ToInt32(Math.Round(l1 * MM));
            int dMM = Convert.ToInt32(Math.Round(d * MM));
            int d1MM = Convert.ToInt32(Math.Round(d1 * MM));
            int d2MM = Convert.ToInt32(Math.Round(d2 * MM));
            int d3MM = Convert.ToInt32(Math.Round(d3 * MM));
            int d4MM = Convert.ToInt32(Math.Round(d4 * MM));
            int d5MM = Convert.ToInt32(Math.Round(d5 * MM));
            int d6MM = Convert.ToInt32(Math.Round(d6*MM));
            int kMM = Convert.ToInt32(Math.Round(k * MM));
            int nMM = Convert.ToInt32(Math.Round(n * MM));
            #endregion
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(Color.WhiteSmoke);
            #region Штриховка
            System.Drawing.Drawing2D.HatchBrush hatchBrush = new HatchBrush(HatchStyle.WideDownwardDiagonal, Color.Black, Color.White);
            //1
            Point sht1 = new Point(424 + dMM / 2 - 20, 362 - HMM + hMM + c1MM);
            Point sht2 = new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM);
            Point sht3 = new Point(424 - DMM / 2, 362 + hMM - c1MM);
            Point sht4 = new Point(424 - DMM / 2 + c1MM, 362 + hMM);
            Point sht5 = new Point(424-d1MM/2, 362+hMM);
            Point sht6 = new Point(424 - dMM / 2, 362 + hMM - c1MM);
            Point sht7 = new Point(424 - dMM / 2, 362);
            Point sht8 = new Point(424, 362 - kMM);
            Point sht9 = new Point(424 + dMM / 2, 362);
            Point sht10 = new Point(424 + dMM / 2, 362 + hMM - c1MM);
            Point sht11 = new Point(424 + d1MM / 2, 362 + hMM);
            Point sht12 = new Point(424 + DMM / 2 - c1MM, 362 + hMM);
            Point sht13 = new Point(424 + DMM / 2, 362 + hMM - c1MM);

            Point sht14= new Point(424 + DMM /2, 362 - HMM / 2 + h1MM + d2MM / 2+c1MM/2);
            Point sht15 = new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2);
            Point sht16 = new Point((424 + DMM / 2 - 2 * c1MM), 362 - HMM / 2 + h1MM + d2MM / 2);
            Point sht17 = new Point(424 -nMM, 362 - HMM / 2 + h1MM + d2MM / 2);
            Point sht18 = new Point(424 - nMM - 24, 362 - HMM / 2 + h1MM);
            Point sht19 = new Point(424 - nMM, 362 - HMM / 2 + h1MM - d2MM / 2);
            Point sht20 = new Point((424 + DMM / 2 - 2 * c1MM), 362 - HMM / 2 + h1MM - d2MM / 2);
            Point sht21 = new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2);
            Point sht22 = new Point(424 + DMM / 2, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2);

            Point sht23 = new Point(424+DMM/2, 362-HMM+hMM+c1MM);
            Point sht24 = new Point(424+DMM/2-c1MM, 362-HMM+hMM);
            Point sht25 = new Point(424 + dMM / 2, 362 - HMM + hMM);

            PointF[] Polig1 =
             {
                 sht1,
                 sht2,
                 sht3,
                 sht4,
                 sht5,
                 sht6,
                 sht7,
                 sht8,
                 sht9,
                 sht10,
                 sht11,
                 sht12,
                 sht13,
                 sht14,
                 sht15,
                 sht16,
                 sht17,
                 sht18,
                 sht19,
                 sht20,
                 sht21,
                 sht22,
                 sht23,
                 sht24,
                 sht25,
             };
            pictureBox1.CreateGraphics().FillPolygon(hatchBrush, Polig1);
            #endregion
            #region Отрисовываем деталь
            SolidBrush solidBrush = new SolidBrush(Color.WhiteSmoke);
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424-DMM/2, 362-HMM+hMM+c1MM), new Point(424-DMM/2, 362+hMM-c1MM));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424, 362 +600), new Point(424 , 362-600));
            g.DrawLine(new Pen(Brushes.Black, 1), new Point(424+600, 362 ), new Point(424-600, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2, 362 - HMM +hMM + c1MM), new Point(424 + DMM / 2, 362 + hMM - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2-c1MM, 362 - HMM +hMM), new Point(424 - DMM / 2+c1MM, 362 - HMM+hMM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424+DMM/2-c1MM, 362-HMM+hMM), new Point(424+DMM/2, 362-HMM+hMM+c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - DMM / 2 + c1MM, 362 - HMM +hMM), new Point(424 - DMM / 2, 362 - HMM +hMM + c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + dMM / 2-20, 362 - HMM + hMM+c1MM), new Point(424 - DMM / 2, 362 - HMM + hMM + c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + dMM / 2 - 20, 362 - HMM + hMM + c1MM), new Point(424 + dMM / 2, 362 - HMM + hMM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - c1MM, 362 + hMM ), new Point(424 + DMM / 2, 362 + hMM  - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - DMM / 2 + c1MM, 362 + hMM ), new Point(424 - DMM / 2, 362 + hMM  - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - DMM / 2 + c1MM, 362 + hMM ), new Point(424 + DMM / 2-c1MM, 362 + hMM ));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424-d1MM/2, 362), new Point(424+d1MM/2, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - dMM/2, 362), new Point(424-dMM/2, 362 + hMM-c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + dMM / 2, 362), new Point(424 + dMM / 2, 362 + hMM - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - dMM / 2, 362 + hMM - c1MM), new Point(424 + dMM / 2, 362 + hMM - c1MM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - dMM / 2, 362 + hMM - c1MM), new Point(424-d1MM/2, 362+hMM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + dMM / 2, 362 + hMM - c1MM), new Point(424 + d1MM / 2, 362 + hMM));
            g.DrawLine(new Pen(Brushes.Black, 3), new Point(424+d1MM/2, 362), new Point(424+d1MM/2, 362+hMM));
            g.DrawLine(new Pen(Brushes.Black, 3), new Point(424 - d1MM / 2, 362), new Point(424-d1MM/2, 362+hMM));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - nMM, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2), new Point(424 - nMM, 362 - HMM / 2 + h1MM - d2MM / 2 - cMM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424, 362-kMM), new Point(424 + dMM / 2, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424, 362 - kMM), new Point(424 - dMM / 2, 362));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM + d2MM / 2), new Point(424 - nMM, 362 - HMM / 2 + h1MM + d2MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM - d2MM / 2), new Point(424 - nMM, 362 - HMM / 2 + h1MM - d2MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM - d2MM / 2), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM + d2MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 -  c1MM, 362 - HMM / 2 + h1MM - d2MM / 2-c1MM/2), new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM + d2MM / 2+c1MM/2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM - d2MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - 2 * c1MM, 362 - HMM / 2 + h1MM + d2MM / 2), new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2), new Point(424 + DMM / 2, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 + DMM / 2, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2), new Point(424 + DMM / 2 - c1MM, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - nMM - 24, 362 - HMM / 2 + h1MM), new Point(424 - nMM, 362 - HMM / 2 + h1MM - d2MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 4), new Point(424 - nMM, 362 - HMM / 2 + h1MM + d2MM / 2), new Point(424 - nMM - 24, 362 - HMM / 2 + h1MM));
            g.DrawLine(new Pen(Brushes.Black, 3), new Point(424 - nMM, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2), new Point(424 + DMM / 2 - c1MM / 2, 362 - HMM / 2 + h1MM + d2MM / 2 + c1MM / 2));
            g.DrawLine(new Pen(Brushes.Black, 3), new Point(424 + DMM / 2 - c1MM / 2, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2), new Point(424 - nMM, 362 - HMM / 2 + h1MM - d2MM / 2 - c1MM / 2));
        }
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощение выражений. Конкретный вопрос Nikky Prolog 1 10.03.2012 16:07
Форматирование кода Arsenx777 Delphi 8 29.05.2011 15:19
Преобразование(упрощение) тригонометрического выражения Charisma Prolog 9 06.12.2010 21:01
Упрощение тригонометрических выражений atumba Prolog 7 01.12.2010 17:59
SWI - Prolog упрощение выражений george2 Prolog 2 19.08.2010 13:07
Ускорение кода Винитарх Юмор 4 11.06.2009 14:24
Упрощение по леммам yav2978 С/С++ 0 06.04.2009 21:15
Упрощение арифметических утверждений LaNSy Prolog 18 31.03.2009 18:19
правка SWI кода dock000 Prolog 1 22.01.2008 10:40
Минимизация и упрощение SanyJ Задания за деньги 4 06.07.2007 21:32
Символьное упрощение алгебраических выражений imported_lelik Prolog 20 23.11.2005 01:47
Нужна программа упрощение символьных выражений Marija Prolog 0 07.12.2004 20:25



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов