Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 58
1

Расчет площади слева и справа от линии разреза

07.09.2017, 03:15. Просмотров 470. Ответов 8
Метки нет (Все метки)

необходимо рассчитать площадь слева и справа от линии разреза
вот наработки (площадь считается неверно)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
if (x >= 0)
            {
                if (x <= 2.0)
                {
                    if (x >= 1.0)
                    {
                        x -= 2.0;
                        sright = 1.0 - Sqrt(Abs(1.0 - x * x));
                        sleft = 2.0 - sright;
                        x++;                     
                    }
                    else
                    {
                        sright = 1.0 + Sqrt(Abs(1.0 - x * x));
                        sleft = 2 - sright;
                        x--;
                        
                    }
                }
                else
                {
                    sleft = 2.0;
                    sright = 0.0;
                    
                }
            }
            else
            {
                sleft = 0.0;
                sright = 2.0;
                
            }
0
Миниатюры
Расчет площади слева и справа от линии разреза  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2017, 03:15
Ответы с готовыми решениями:

Вычислить длину линии вертикального разреза фигуры, площади фигуры слева и справа от линии разреза
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры ...

Горизонтальные линии справа и слева от текста
Подскажите, как сверстать вот такие линии ? Загружайте изображения и файлы на форум и...

Длина линии вертикального разреза фигуры
Здравствуйте, помогите пожалуйста разобраться: Необходимо составить алгоритм и написать код...

Вычислить длину линии вертикального разреза фигуры
Задание : Составить алгоритм и написать код программы, вычисляющей длину линии вертикального...

8
190 / 197 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
07.09.2017, 19:10 2
Cosfar, что такое площадь это интеграл

Графическое объяснение интеграла

т.е. площадь можно посчитать разделив фигуру на кучу прямоугольников , чем меньше будет их ширина , тем точнее расчет
0
Миниатюры
Расчет площади слева и справа от линии разреза  
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 58
08.09.2017, 04:18  [ТС] 3
я пробовал использовать метод трапеций, вот только что-то не получалось)
0
474 / 408 / 295
Регистрация: 24.09.2013
Сообщений: 2,884
Записей в блоге: 1
08.09.2017, 21:32 4
На чертеже единственная разделительная линия - ГОРИЗОНТАЛЬНАЯ.
Как тогда искать, что влево и что вправо?
0
2311 / 1693 / 902
Регистрация: 14.08.2016
Сообщений: 5,842
08.09.2017, 21:51 5
походу юзер вводит координату Х и она поделит на лево/право
0
474 / 408 / 295
Регистрация: 24.09.2013
Сообщений: 2,884
Записей в блоге: 1
08.09.2017, 22:06 6
При горизонтальной линии раздела, решение самое простое:

C#
1
2
3
4
5
6
7
8
9
10
11
Forms Code
{
       private void button1_Click(object sender, EventArgs e)
       {
         Double db1, db2;
          // Верхняя часть - полуокружность радиуса - 1
           db1 = Math.Pi/2;
           // Нижняя часть - прямоугольник 2х1 без двух четверть окружностей радиуса 1 
           db2 = 2 * 1 - db1;
       }
}
0
474 / 408 / 295
Регистрация: 24.09.2013
Сообщений: 2,884
Записей в блоге: 1
09.09.2017, 23:17 7
Задача немного громоздкая и я приведу код решения задачи для верхнего полукруга, для других участков код аналогичный
Прощадку верхнего полукруга разрежем на 100000 вертикальных полосок
Его площадь - 1,570796327 (Это для проверки)
Высота полоски определяется из прямоугольного треугольника
горизонтальный катет 1- x
вертикальный y
гипотенуза (радиус) = 1
Если все выполнено правильно то в listBox1 получим ту же прощадь в пределах 5-6 знаков точности.
Теперь, вместо x <=2, можно ставить желательное значение и получите площадь левой части

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Forms Code
{
       private void button1_Click(object sender, EventArgs e)
       {
           Double sum =0, x, y, , delta = 0.000001;
            for(x = 0; x <=2; x += delta) // При  x =2 весь полукруг полностью разрезан на полоски
            {
              y = Math.Sqrt(2*x - x*x); 
               sum += y * delta;
             }
            listBox1.Items.Add(sum);
       }
}
1
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 58
13.09.2017, 05:10  [ТС] 8
Короче вот мой вариант что более-менее правильно считает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 double s1, s2;
            s1 = f1(x) - f1(0);
            if (x < 1)
            {
                s2 = f2(x) - f2(0.0);
            }
            else
            {
                s2 = f3(x) - f3(1.0) + f2(1.0) - f2(0.0);
            }
            sleft = s1 + Abs(s2);
            sright = 2.0 - sleft;
private double f1(double a)
        {
            return 0.5 * (a * Sqrt(2.0 * a - a * a) - Sqrt(2.0 * a - a * a) - Asin(1.0 - a));
        }
private double f2(double a)
        {
            return 0.5 * (Asin(a) + a * Sqrt(1.0 - a * a)) - a;
        }
private double f3(double a)
        {
            return 0.5 * (a * Sqrt(-a * a + 4.0 * a - 3.0) - Asin(2.0 - a)) - Sqrt(-a * a + 4.0 * a - 3.0) - a;
        }
Задача решена
0
474 / 408 / 295
Регистрация: 24.09.2013
Сообщений: 2,884
Записей в блоге: 1
13.09.2017, 13:15 9
К сожалению, Вы ничего не поняли. Это у Вас набор строк, не решающих задачу.
А где разбиение на элементарные площадки? Без этого не получите требуемой точности 3-4 знака.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2017, 13:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить длину линии вертикального разреза фигуры
Задание: Составить алгоритм и написать код программы, вычисляющей длину линии верти-кального...

Написать код программы, вычисляющей длину линии вертикального разреза фигуры...
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры...

Составить алгоритм, вычисляющей длину линии вертикального разреза фигуры (найти ошибку)
При x=1 и от x 1 до 2 считает правильно, а при значениях от 0 до 1 некорректные значения. ...

Написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.