Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.03.2015, 11:47   #1
АлексАлександр
 
Регистрация: 22.03.2015
Сообщений: 4
По умолчанию

Добрый день.
У меня возникла проблема. Необходимо построить график по заданной формуле при условии In-plane.

Известно :

ms = 1750; (*Gs*)
h0 = 600;
omegah = 2.8*h0;
omegam = 2.8*ms;
S = 5*10^-4(*cm*);

Проблема в том, что я не знаю, как это правильно реализовать.

Просто время , отведенное на работу, подходит к концу.
И никак не сдвинуться с "мертвой" точки.
Поэтому решил обратиться к Вам.
Вложения
Тип файла: zip Слайд.zip (49.8 Кб, 11 просмотров)

Последний раз редактировалось Stilet; 23.03.2015 в 07:34.
АлексАлександр вне форума
Старый 23.03.2015, 06:50   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

У меня получается, что отклонение между значениями функции очень маленькое

Код:
#include <windows.h>
#include <math.h>
#include <stdio.h>

#pragma comment(lib, "user32.lib")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "gdi32.lib")

#define _E 2.71828182845
#define _PI 3.14159265359
#define EPS 0.01
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

double ms = 1750.0;
double h0 = 660.0;
double omegah = 2.8 * h0;
double omegam = 2.8 * ms;
double S = 5.0 * 0.0001;
double P;
double k;
double omega1;
double omega2;
double fi = 0.5;
double theta = 0.0;


static double center_x = 300;
static double center_y = 300;
static double mastab_x = 0.01;
static double mastab_y = 0.01;
static HPEN hpen1;
static HPEN hpen2;
HDC hdc;

switch (uMsg)
{
case WM_CREATE: 
hpen1 = CreatePen(PS_SOLID, 1, RGB(255, 255, 128)); 
hpen2 = CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); 
return 0;
case WM_PAINT: 
hdc = GetDC(hwnd);
SelectObject(hdc, hpen2);
MoveToEx(hdc, center_x , center_y, NULL); LineTo(hdc, 0,center_y); 
MoveToEx(hdc, center_x , center_y, NULL); LineTo(hdc, center_x, 2 * center_y); 
MoveToEx(hdc, center_x , center_y, NULL); LineTo(hdc, center_x, 0); 
MoveToEx(hdc, center_x , center_y, NULL); LineTo(hdc, 2 * center_x, center_y);

for (fi = 0.0; fi < 1.0; fi += EPS)
for(k = -1.0; k <1.0; k += EPS)
{
P = 1.0 - (1.0/(k*S)) * ( 1.0 - exp(-k*S) ) ;

omega1 = sqrt ( (omegah + omegam* (1.0 - P) * cos(theta)*cos(theta))*(omegah + omegam* P * sin(fi)*sin(fi) ) + omegah*omegam*cos(fi)*cos(fi)*sin(theta)*sin(theta));
omega2 = - sqrt ( (omegah + omegam* (1.0 - P) * cos(theta)*cos(theta))*(omegah + omegam* P * sin(fi)*sin(fi) ) + omegah*omegam*cos(fi)*cos(fi)*sin(theta)*sin(theta));
printf("%f %f %f %f %f %f\n",  fi, k, omega1, omega2, center_x + mastab_x * k, center_y - mastab_y * omega1);

SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega1, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega1+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega1-1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k + 1.0, center_y - mastab_y * omega1+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k + 1.0, center_y - mastab_y * omega1-1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k - 1.0, center_y - mastab_y * omega1+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k - 1.0, center_y - mastab_y * omega1-1.0, RGB(0,0,255) ); 


SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega2, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega2+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k, center_y - mastab_y * omega2-1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k + 1.0, center_y - mastab_y * omega2+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k + 1.0, center_y - mastab_y * omega2-1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k - 1.0, center_y - mastab_y * omega2+1.0, RGB(0,0,255) ); 
SetPixel(hdc, center_x + mastab_x * k - 1.0, center_y - mastab_y * omega2-1.0, RGB(0,0,255) ); 
}


ReleaseDC(hwnd, hdc); DeleteObject(hpen1); DeleteObject(hpen2);
return 0;

case  WM_DESTROY: PostQuitMessage(NULL); return 0;
case WM_KEYDOWN: return 0;
case WM_COMMAND:return 0;
case WM_LBUTTONDOWN: return 0;
case WM_MOUSEMOVE: return 0;
case WM_LBUTTONUP: return 0;
default: return DefWindowProc(hwnd, uMsg,wParam, lParam);
}

return DefWindowProc(hwnd, uMsg,wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int CmdShow)
{
WNDCLASSEX wc; MSG msg; HWND hwnd;

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = NULL;
wc.cbWndExtra = NULL;
wc.hInstance = hInst;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName =  "SimpleWinClass";
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm =LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);

RegisterClassEx(&wc);
hwnd = CreateWindowEx(NULL, "SimpleWinClass", "Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,  NULL, NULL, hInst, NULL);
ShowWindow(hwnd, SW_SHOWNORMAL); UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
return msg.wParam;
}

int main(int argc, char* argv[])
{
HINSTANCE hInstance = GetModuleHandle(0);
LPSTR CommandLine = GetCommandLine();
return WinMain(hInstance, NULL,CommandLine, SW_SHOWDEFAULT);
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума
Старый 23.03.2015, 07:35   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Причем тут Си? Читай внимательно тему.
I'm learning to live...
Stilet вне форума
Старый 23.03.2015, 08:48   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Причем тут Си? Читай внимательно тему.
подключение через COM возможно для внешних языков

"Лицевая панель виртуального прибора формируется так же, как и в LabVIEW, а алгоритм работы виртуального прибора программируется на языке Си. " ( https://ru.wikipedia.org/wiki/LabVIEW )

"для взаимодействия с другими приложениями в рамках концепции COM/DCOM/OLE."( https://ru.wikipedia.org/wiki/LabVIEW )
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума
Старый 23.03.2015, 09:33   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
подключение через COM возможно для внешних языков
Фейспалм... Эпик фейспалм...
I'm learning to live...
Stilet вне форума
Старый 23.03.2015, 11:38   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

challengerr если твое знакомство с LabView не выходит за пределы баек из Википедии, то это зачетный вброс.

по теме, если правильно помню, в LabView есть такой полезный тул как MathScript, построить можно график практически любой функции.
f.hump вне форума
Старый 23.03.2015, 21:20   #7
АлексАлександр
 
Регистрация: 22.03.2015
Сообщений: 4
По умолчанию

f.hump

Пытался, но что-то совсем ничего путного не выходит :с
Простейшие уравнения или синусоиды, как пример, могу построить, никаких проблем, но в данной ситуации...
АлексАлександр вне форума
Старый 23.03.2015, 22:51   #8
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

красивая формула. какая-то магнитная анизотропия надо понимать.
тут как бы P зависит от w, а w^2 является функцией P, phi и theta. мне лень об этом думать. если не знаешь как бороться с неявными функциями, во фриланс запости, может кто поможет.

подозреваю, что LabView не лучший инструмент для решения такой задачи.

Последний раз редактировалось f.hump; 23.03.2015 в 23:02.
f.hump вне форума
Старый 24.03.2015, 00:12   #9
АлексАлександр
 
Регистрация: 22.03.2015
Сообщений: 4
По умолчанию

Да, ты прав.
Но, к сожалению, выполнение поставленной задачи требуется именно при помощи LabView.
АлексАлександр вне форума
Старый 24.03.2015, 07:41   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Продолжение темы здесь: http://www.programmersforum.ru/showthread.php?t=275102
Эту часть закрываю.
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LabView flvbhfk Софт 1 27.10.2011 03:13