using System; namespace Science.Physics.GeneralPhysics { /// /// SinusoidalWave /// public class SinusoidalWave { public SinusoidalWave() { } private double A, omega, phi, T, f, k, lambda, v; public double Amplitude { get{return A;} set{A=value;} } public double AngularFrequency { get{return omega;} set{omega=value;} } public double PhaseConstant { get{return phi;} set{phi=value;} } public double Period { get{return T;} set{T=value;} } public double Frequency { get{return f;} set{f=value;} } public double WaveNumber { get{return k;} set{k=value;} } public double WaveLength { get{return lambda;} set{lambda=value;} } public double Speed { get{return v;} set{v=value;} } public void FindFrequencyFromPeriod() { f = 1.0/T; } public void FindFrequencyFromAngularFrequency() { f = omega/2.0/Math.PI; } public void FindPeriodFromFrequency() { T = 1.0/f; } public void FindPeriodFromAngularFrequency() { T = 2.0*Math.PI/omega; } public void FindAngularFrequencyFromPeriod() { omega = 2.0*Math.PI/T; } public void FindAngularFrequencyFromFrequency() { omega = f*2.0*Math.PI; } public void FindWaveNumberFromWaveLength() { k = 2.0*Math.PI/lambda; } public void FindWaveLengthFromWaveNumber() { lambda = 2.0*Math.PI/k; } public void FindSpeedFromWaveLengthFrequency() { v = lambda*f; } public void FindSpeedFromWaveNumberAngularFrequency() { v = omega/k; } public double Magnitude(Length x, Time t) { return A*Math.Sin(k*x.m - omega*t.s + phi); } } }