Биоритмы человека. Программа для расчета по дате рождения.
Как получить из исходных данных (даты рождения и длины циклов 23,28,33 дней) циклические синусоидальные графики биоритмов человека?
Значения на заданный день от даты рождения человека получается просто: полные циклы удаляются, а на заданный день определяетя фаза цикла. Считается, что в день рождения конкретного человека, все его циклы находились на максимуме.
- Биологические ритмы (биоритмы) человека
- Гармонические циклы : физический, эмоциональный, интеллектуальный
- Расчет значений Биоритмов на очередной месяц
- Простейший Вывод результатов (синусоид) с помощью графических функций VB
- Запоминание даты рождения в ini-файл (для удобства пользователя)
Актуальность...?
Биологические ритмы (биоритмы) человека
Можно верить, можно не верить, но какое-то время назад была популярна теория о трёх, неизменных ритмах (физической, интеллектуальной и эмоциональной активности с периодами в 23, 28, 33 дня, соответственно), рассчитываемых от даты рождения..
скачать ехе-файл для тестирования
Рис.1 Биологические ритмы (биоритмы) человека
А в целом, то, что показатели (параметры) состояния человека (и физического, и эмоционального, и интеллектуального) изменяются во времени - это «к гадалке не ходи». Любой из нас может без труда вспомнить примеры из собственной жизни... В определенные дни, даже проделав большую физическую или интеллектуальную работу - кажется, совсем не чувствуешь усталость... Чего нельзя сказать про некоторые другие дни (неудачные для данного вида деятельности).
Вот только вопрос синусоидальные ли это колебания? И еще... насколько стабилен их период? Какова причинно-следственная связь этих колебаний?
Может для установления показателя состояния человека лучше использовать не синусоидальный график, а программу тестирования в конкретный день... И таким образом определять свои возможности в физическом, эмоциональном и интеллектуальном плане на сегодня... ?
Как бы то ни было, красным подчёркнуты "критические дни", т.е. когда один или несколько циклов имеют минимальное значение!
Гармонические циклы : физический, эмоциональный, интеллектуальный
Физическая составляющая состояния человека характеризует его энергичность. Так, ориентируясь на этот показатель, можно говорить о выносливости, целеустремленности, инициативности, амбициозности.
Эмоциональная составляющая - это чувствительность к восприятию всех внешних факторов и внутренних переживаний (проблем). Поэтому в отдельные дни интуиция человека поразительна. Также с этим показателем связывают творческие способности индивидуума.
Интеллектуальная составляющая - это о возможностях умственной деятельности. Логика, рациональность, безошибочность подсчетов и перебора вариантов, плюс в какой-то мере, осторожность.
У кого есть время и желание, может провести исследовательскую работу на себе... Ежедневно записываю свои успехи и самочувствие и сверяя их с тремя графиками...
Расчет значений Биоритмов на очередной месяц
Считаем количество дней от даты рождения до нулевого дня заданного (т.е. последнего дня предыдущего месяца).
Год и рассчетный месяц - изменяются константами. Очень легко. Если исходник у Вас...
А вот предоставить возможность для ввода данных пользователю, да еще перепроверить его данные, чтобы не ввел всякой ерунды - это хлопотно.
//------------------------------
Private Function Get_CorrectDate() As Date 'корректирует Combо3
Dim monthNum As Integer, dayNum As Integer
monthNum = Combo2.ListIndex + 1
If monthNum = 0 Then monthNum = 1
If monthNum > 12 Then monthNum = 12
dayNum = Get_day_in_theMonth(monthNum, CInt(Combo1.Text))
If dayNum < CInt(Combo3.Text) Then Combo3.Text = dayNum
If CInt(Combo3.Text) < 1 Then Combo3.Text = 1
SelectYear = CLng(Combo1.Text)
SelectMonth = monthNum
SelectDay = CInt(Combo3.Text)
Birth = DateSerial(SelectYear, SelectMonth, SelectDay)
Get_CorrectDate = Birth
End Function
//------------------------------
функция Get_day_in_theMonth возвращает правильное количество дней в любом месяце, включая високосные годы...
Находим поочередно, через оператор Mod, остаток от деления (по модулю) на длину каждого из циклов.
Переводим этот остаток в радианы, считая что весь цикл это 2π радиан И находим синус...
Это и будет значение одного из показателей (физического, эмоционального или интеллектуального), которое синусоидально изменяться от -1 до 1 и обратно.
Простейший Вывод результатов (синусоид) с помощью графических функций VB
Используя в цикле графический оператор Line языка VB, строим синусоиды разного цвета...
Рис.2 Простейший Вывод результатов (синусоид) с помощью графических функций VB
по коду:
//------------------------------
Private Sub DrawGraf()
Dim i As Integer, st As Integer, X0 As Long, X1 As Long, Y1 As Long, Y2 As Long, Y3 As Long, Ytmp As Long
DrawWidth = 3 'DrawStyle = vbSolid
st = 3 'шаг рисования графиков
Y1 = sk.uAmpl * GetNextY(T1, aSinStart1, 0)
Y2 = sk.uAmpl * GetNextY(T2, aSinStart2, 0)
Y3 = sk.uAmpl * GetNextY(T3, aSinStart3, 0)
For i = 1 To sk.dW \ st Step st
X1 = st * i: X0 = X1 - st
Ytmp = sk.uAmpl * GetNextY(T1, aSinStart1, X1)
Line (dLeft + X0, sk.uNull - Y1)-(dLeft + X1, sk.uNull - Ytmp), mColor1
Y1 = Ytmp
Ytmp = sk.uAmpl * GetNextY(T2, aSinStart2, X1)
Line (dLeft + X0, sk.uNull - Y2)-(dLeft + X1, sk.uNull - Ytmp), mColor2
Y2 = Ytmp
Ytmp = sk.uAmpl * GetNextY(T3, aSinStart3, X1)
Line (dLeft + X0, sk.uNull - Y3)-(dLeft + X1, sk.uNull - Ytmp), mColor3
Y3 = Ytmp
Next i
DrawKritical 'критические дни
End Sub
//------------------------------
aSinStart1,aSinStart2,aSinStart3 - это фазы (арксинусы) для каждого из циклов.
скачать ехе-файл для тестирования
Другие примеры на тему «Математические методы компьютерной 2D 3D графики»
Другие примеры на языке «Visual Basic»
Запоминание даты рождения в ini-файл (для удобства пользователя)
//------------------------------
Function Save_ini(dan As Long) As Boolean 'сохранение в файл
Dim pathBIN As String
Dim FNum As Integer
On Error GoTo oo
pathBIN = App.Path & "\" & FN
FNum = FreeFile
Open pathBIN For Output As FNum
Print #FNum, CStr(dan)
Close FNum
Save_ini = True
Exit Function
oo:
MsgBox "Не возможно сохранить ini-файл"
End Function
//------------------------------
Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку ...
Поделиться в соц сетях: