Автор работы: Пользователь скрыл имя, 26 Января 2014 в 14:29, курсовая работа
Цель исследования: изучение и разработка программного обеспечения для моделирования электронно-проекционного метода. В процессе исследования и разработки модели электронно-проекционного метода использовались следующие программные приложения: Visual Basic 2005, DirectX 9.0с SDK, MathCAD 13, 3D Studio Max 6.0. Была разработана программа по моделированию муарового эффекта. Были получены различные муаровые картины. Область применения: данная разработка может быть использована в исследовании муаровых методов, демонстрации муарового эффекта, определения деформаций на различных поверхностях.
Введение 5
1 Муаровый эффект 6
1.1 Природа муарового эффекта 6
1.2 Классификация муаровых методов 7
1.3 Муаровые методы 10
1.4 Математическая модель исследования топологии поверхностей электронно-проекционным муаровым методом 14
2 Выбор аппаратно-программных средств разработки 18
3 Разработка программного обеспечения для моделирования муарового эффекта 19
3.1 Основной алгоритм программы, модулирующий муаровый эффект 19
3.2 Интерфейс программы 22
Заключение 31
Список использованных источников 32
If CheckBox1.Checked Then
createcameraview = True
End If
refreshwindow = True
End Sub
Private Sub TrackBarCZ_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBarCZ.Scroll
SomeChange = True
NumericUpDownCZ.Value = TrackBarCZ.Value
If CheckBox1.Checked Then
createcameraview = True
End If
refreshwindow = True
End Sub
Private Sub NumericUpDownCZ_ValueChanged(B
SomeChange = True
TrackBarCZ.Value = NumericUpDownCZ.Value
NumericUpDownCH.Value = Math.Sqrt(NumericUpDownCX.
NumericUpDownCA.Value = Math.Acos(NumericUpDownCZ.
If CheckBox1.Checked Then
createcameraview = True
End If
refreshwindow = True
End Sub
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll, TrackBar3.Scroll, TrackBar2.Scroll
refreshwindow = True
End Sub
Private Sub NumericUpDownMRS1_
SomeChange = True
End Sub
Private Sub CB_Pov_SelectedIndexChanged(By
SomeChange = True
Face = CB_Pov.SelectedIndex
If (Face = 6) And (Resel) Then
OFD.ShowDialog()
Dim FName As String = OFD.FileName
If (FName = "") Then
Face = 0
CB_Pov.SelectedIndex = 0
Return
End If
Dim fs As IO.FileStream = New IO.FileStream(FName, IO.FileMode.Open)
'создание(файла)
Dim r As IO.BinaryReader = New IO.BinaryReader(fs)
'открытие файла на запись
SurSize.X = r.ReadInt32()
SurSize.Y = r.ReadInt32()
Dim ix, iy As Integer
For iy = 0 To SurSize.Y
For ix = 0 To SurSize.X
UserSur(ix, iy) = r.ReadInt32()
Next
Next
r.Close() ' закрытие файла.
fs.Close()
LProba.Text = Path.
OFD.FileName = ""
End If
If (Face = 7) Then
LSyn.Visible = True
NUDSyn.Visible = True
Else
LSyn.Visible = False
NUDSyn.Visible = False
End If
End Sub
Private Sub CB_Res_SelectedIndexChanged(By
SomeChange = True
fWidth(0) = fWidth(CB_Res.SelectedIndex + 1)
fHeight(0) = fHeight(CB_Res.SelectedIndex + 1)
NewResolution = True
refreshwindow = True
End Sub
Private Sub NumericUpDownMRS_ValueChanged(
SomeChange = True
NumericUpDownMRS1.Value = NumericUpDownMRS.Value \ 2
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.
End Sub
Private Sub BCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BCreate.Click
Randomize()
Dim FName As String = TBFileName.Text & ".txt"
Dim MaxH As Integer = NUDH.Value
Dim X As Integer = NUDX.Value
Dim Y As Integer = NUDY.Value
Dim ix, iy As Integer
Dim h As Integer
Dim fs As IO.FileStream = New IO.FileStream(FName, IO.FileMode.Create)
' создание файла
Dim w As IO.BinaryWriter = New IO.BinaryWriter(fs)
' открытие файла на запись
w.Write(X)
w.Write(Y)
Dim Sur(X, Y) As Integer
If (RBRnd.Checked) Then
For iy = 0 To Y
For ix = 0 To X
Randomize()
Sur(ix, iy) = MaxH * Rnd()
Next
Next
End If
If (RBRndOff.Checked) Then
For iy = 0 To Y
Sur(0, iy) = 0
For ix = 1 To X
Randomize()
h = Sur(ix - 1, iy) + (-1) ^ (CInt(2 * Rnd()))
Sur(ix, iy) = h
If (h < 0) Then Sur(ix, iy) = 0
If (h > MaxH) Then Sur(ix, iy) = MaxH
Next
Next
End If
If (RBRndOff2.Checked) Then
For iy = 0 To Y
Sur(0, iy) = 0
Next
For ix = 1 To X
Randomize()
h = Sur(ix - 1, 0) + (-1) ^ (CInt(2 * Rnd()))
Sur(ix, 0) = h
If (h < 0) Then Sur(ix, 0) = 0
If (h > MaxH) Then Sur(ix, 0) = MaxH
For iy = 1 To Y
Sur(ix, iy) = Sur(ix, 0)
Next
Next
End If
If (RBRndOff3.Checked) Then
Sur(0, 0) = 0
For ix = 1 To X
Randomize()
h = Sur(ix - 1, 0) + (-1) ^ (CInt(2 * Rnd()))
Sur(ix, 0) = h
If (h < 0) Then Sur(ix, 0) = 0
If (h > MaxH) Then Sur(ix, 0) = MaxH
Next
Dim Offs As Integer
For iy = 1 To Y
Randomize()
Offs = (-1) ^ (CInt(2 * Rnd()))
For ix = 0 To X
h = Sur(ix, iy - 1) + Offs
Sur(ix, iy) = h
If (h < 0) Then Sur(ix, iy) = 0
If (h > MaxH) Then Sur(ix, iy) = MaxH
Next
Next
End If
If (RBSyn.Checked) Then
For ix = 0 To X
h = MaxH * Math.Cos((ix - SurSize.X / 2) * Math.PI / 50) + MaxH
Sur(ix, 0) = h
If (h < 0) Then Sur(ix, 0) = 0
For iy = 1 To Y
Sur(ix, iy) = Sur(ix, 0)
Next
Next
End If
If (RBSyn2.Checked) Then
For ix = 0 To X
Sur(ix, 0) = MaxH * Math.Cos((ix - SurSize.X / 2) * Math.PI / 50) + MaxH
Next
Dim Offs As Integer
Dim S0, S1 As Integer
For iy = 1 To Y
S0 = MaxH * Math.Cos((iy - 1) * Math.PI / 50) + MaxH
S1 = MaxH * Math.Cos((iy) * Math.PI / 50) + MaxH
Offs = S1 - S0
For ix = 0 To X
h = Sur(ix, iy - 1) + Offs
Sur(ix, iy) = h
If (h < 0) Then Sur(ix, iy) = 0
Next
Next
End If
For iy = 0 To Y
For ix = 0 To X
w.Write(Sur(ix, iy))
Next
Next
w.Close() ' закрытие файла.
<span class="dash041e_0431_044b_
Информация о работе Разработка программы, моделирующая муаровый эффект