0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 5
1

Построить картину силовых линий и эквипотенциальных поверхностей на плоскости для системы точечных зарядов

25.12.2014, 23:55. Показов 4941. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно построить картину силовых линий и эквипотенциальных поверхностей на плоскости для системы точечных зарядов.

Строили силовые линии, но не знаю как построить эквипотенциальную поверхностей.
Помогите написать код...

Вот есть код силовых линий. Писали в Visual Studio

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    srand(time(NULL));
 
    int wmId, wmEvent;
    PAINTSTRUCT ps;
 
    HDC hdc;
    const int Nq = 20;
    double x,y,x1[Nq],y1[Nq],r,fi,q[Nq],Ex,Ey,E;
    int i,N_Lines, rad, l, Lx, Ly, flag;
    
    x1[0]=100;
    y1[0]=300;
    q[0]=1;
 
    x1[1]=500;
    y1[1]=400;
    q[1]=1;
 
    /*for (int t = 0; t < Nq; t++)
    {
        x1[t]=rand()%1024;
        y1[t]=rand()%768;
        q[t]=rand()%10;
    }*/
 
    /*x1[0]=rand()%700;
    y1[0]=rand()%500;
    q[0]=rand()%10;
 
    x1[1]=rand()%700;
    y1[1]=rand()%500;
    q[1]=rand()%10;
 
    x1[2]=rand()%700;
    y1[2]=rand()%500;
    q[2]=rand()%10;*/
 
 
    rad=1;
    l=1;
    Lx=2000;
    Ly=2000;
 
 
 
    switch (message)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Разобрать выбор в меню:
        switch (wmId)
        {
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        // TODO: добавьте любой код отрисовки...
 
        
        for (int j = 0; j < Nq; j++)
        {
            N_Lines=12*q[j];
            for (i=0; i<N_Lines; i++)
            {
                fi=M_PI/6/q[j]*i;
                x=x1[j] + rad*cos(fi);
                y=y1[j] + rad*sin(fi);
                MoveToEx(hdc, x,y,NULL);
                while (x>=0 && x<=Lx && y>=0 && y<=Ly)
                {
                    Ex = Ey = 0;
                    flag = 0;
                    for (int k = 0; k < Nq; k++)
                    {
                        r= sqrt((x-x1[k])*(x-x1[k])+(y-y1[k])*(y-y1[k]));
                        /*if (r < rad/2) 
                        {
                            flag = 1;
                            break;
                        }*/
                        Ex+=q[k]*(x-x1[k])/r/r/r;
                        Ey+=q[k]*(y-y1[k])/r/r/r;
                        E=sqrt(Ex*Ex+Ey*Ey);
                    }
                    //if (flag == 0)
                    {
                        x=x+l*Ex/E;
                        y=y+l*Ey/E;
                        LineTo(hdc, x, y);
                    }
                    //else break;
                }
            }
        } 
        
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
 
// Обработчик сообщений для окна "О программе".
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;
 
    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}
0
25.12.2014, 23:55
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2014, 23:55
Ответы с готовыми решениями:

Как построить картину силовых линий поля диполя
Помогите пожалуйста построить в mathcad картину силовых линий поля диполя?

Нарисовать примерный график распределения эквипотенциальных линий поля в плоскости перпендикулярной оси z.
Доброго времени суток уважаемые форумчане. Помогите в прояснении следующего вопроса: Имеется бесконечная цилиндрическая полость в...

Построить систему силовых линий Е (где ошибка в коде?)
помогите, в чем ошибка? SCREEN 12 pi = 3.141593: nu0 = .0000001 * 4 * pi K = nu0 / (4 * pi) kollin = 10 LINE (0, 240)-(639, 240),...

1
2 / 2 / 2
Регистрация: 24.02.2014
Сообщений: 13
01.06.2015, 17:13 2
А можешь рассказать поподробнее о силовых линиях? В какой форме это рисуется?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2015, 17:13
Помогаю со студенческими работами здесь

Как построить картину линий электрического поля?
Здравствуйте! Подскажите, пожалуйста, как строится подобная картина линий поля в Mathcad? Заранее спасибо.

Найти отношение двух точечных зарядов
Здравствуйте! Помогите, пожалуйста решить задачу. Два точечных заряда +q1 и –q2 противоположных знаков рас- положены в вакууме...

Движение точечных зарядов навстречу друг другу
Два точечных неподвижных электрических заряда q1 и q2 имеют массы m1 и m2 и находятся на расстоянии r в вакууме. Они начинают притягиваться...

Работа в электростатическом поле. Энергия взаимодействия точечных зарядов.
Точечные заряды q1 = 6,6*10^(-9) Кл и q2 = 13,2*10^(-9) Кл находятся на расстоянии r1 = 40 см.Какую работу A следует совершить, что бы...

программа вычисления силы взаимодействия 2ух точечных электрических зарядов
Доброго времени суток)) просьба помочь в составлении следующей программы: Программа вычисления силы взаимодействия 2ух точечных...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru