05.05.2014, 06:15 | #1 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Программа расчета биоритмов
Попросили меня давеча на работе тетушки наши сделать им утилитку для расчета биоритмов. Поскольку иногда у меня есть на работе и свободное время, просьба была уовлетворена. Хочу поделиться с вами исходниками на Delphi. Итак, при запуске программа ищет Ini-файл с настройками; в случае его отсутствия вызывается окно с настройками программы. Программа "висит" в трее, иконка представляет из себя три бара с физическим, эмоциональным и интеллектуальным уровнями. Отрисовывается иконка динамически - возможно, кому-то и пригодится как пример создания динамической иконки. Ниже приведена процедура отрисовки динамической иконки (использовался компонент TTrayIcon): procedure TSettingsForm.CreateIcon(Phys, Intellect, Emotion: Integer); var Bmp: TBitmap; Icon: TIcon; IconInfo: TIconInfo; begin //Создаем битмап с рисунком баров Bmp:=TBitmap.Create; with Bmp do begin Width:=GetSystemMetrics(SM_CXICON);//Ширина иконок в трее Height:=GetSystemMetrics(SM_CYICON);//Высота иконок в трее Transparent:=True; Canvas.FillRect(Rect(0,0,Width,Height)); //Отрисовываем физический уровень Canvas.Brush.Color:=clGreen; Canvas.FillRect(Rect(0,Height-Height*Phys div 100,Width div 3,Height)); //Отрисовываем эмоциональный уровень Canvas.Brush.Color:=clBlue; Canvas.FillRect(Rect(Width div 3,Height-Height*Emotion div 100,Width*2 div 3,Height)); //Отрисовываем интеллектуальный уровень Canvas.Brush.Color:=clRed; Canvas.FillRect(Rect(Width*2 div 3,Height-Height*Intellect div 100,Width,Height)); end; //Создаем иконку Icon:=TIcon.Create; IconInfo.fIcon:=True; IconInfo.xHotspot:=0; IconInfo.yHotspot:=0; IconInfo.hbmMask:=Bmp.Handle; IconInfo.hbmColor:=Bmp.Handle; Icon.Handle:=CreateIconIndirect(IconInfo); //Уничтожаем битмап Bmp.Free; //Иконку назначаем компоненту TrayIcon TrayIcon.Icon:=Icon; //Перерисовываем иконку InvalidateRect(Application.Handle,nil,True); TrayIcon.Refresh; Icon.Free; end; Левый клик мыши вызывает всплывающую подсказку, правый - контекстное меню. При клике на пункте "Показать" вызывается окно, в котором динамически (на Canvas) рисуются три графика с биоритмами за период +/- 5 дней. Обновление (пересчет) производится каждый час. Сама формула расчета биоритмов проста: B = (sin (2pi*t/P))*100% B — состояния биоритма в %,выражается как состояние относительно нуля(+/-100%). t — количество дней, прошедших с даты рождения до текущего (нужного) момента. P — фаза биоритма: 23 - физич. цикл, 28 - эмоциональный, 33 - интеллектуальный. Надеюсь, кому-то пригодится. С исходником можете делать что угодно |
05.05.2014, 06:15 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Прошу обратить внимание на эти ссылки - тут схожие с вашей темы Нужна помощь с программой расчета колебаний струны Программа расчета цепей Программа |
22.07.2018, 23:17 | #2 (permalink) |
Member
Регистрация: 25.06.2018
Адрес: Минск
Сообщений: 69
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Как раз формула расчета и не совсем правильна. Когда-то лет 30 назад мне попался какой-то журнал, вроде "Природа и человек" со статьёй одного товарища, который работал в Центр подготовки космонавтов. Он писал, что они использовали биоритмы, основанные на периоде вращения Луны, но каком именно не написал, а их 3 штуки. Я написал программу на бейсике, заодно и научился слегка. В результате экспериментов выяснил, что наиболее достоверные данные получаются, если взять среднее арифметическое от трех периодов, примерно 28.426125. Все остальные ритмы- физический, интеллектуальный - несущественны, а этот прямо в точку.
|
31.07.2018, 06:54 | #3 (permalink) |
Новичок
Регистрация: 31.07.2018
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Проверенная программа расчета биоритмов
С 1980г пользуюсь программой описанной в книге "Ваша работоспособность сегодня" (1978г). Отличие от других -нецелочисленное значение периодов. Адекватность проверена на личных совпадениях критических дней и простудных заболеваний и отрицательных
последствий даже взятие крови из пальца в критический день. Для меня окончательно все решило совпадение с критическими днями дат смерти родственников по отцу и матери. |
06.09.2018, 23:56 | #4 (permalink) |
Специалист
Регистрация: 08.04.2015
Сообщений: 13,669
Сказал(а) спасибо: 107
Поблагодарили 56 раз(а) в 25 сообщениях
Репутация: 76897
|
Критические дни у Ксении Ксенофонтовны - я ещё могу понять, но как у Ксенофонта могут быть критические дни?!
__________________
Errare humanum est, stultum est in errore perseverare. |
16.02.2020, 13:25 | #5 (permalink) |
Новичок
Регистрация: 10.02.2020
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Как у ксеноморфа
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|