I experimented with adding a reflection, but of course, without room to add a blurring function, it ended up looking rubbish.
It's also hard to just "imagine" that a plane is there titled towards you at 30 degrees.
Anyway, I managed to get it down to 9 lines by spoiling the meter a little bit.
[syntax="QBASIC"]
1 amp! = 25.0
2 while inkey$ = ""
3 if t! = 0.0 then screen 13 else if t! = 1.0 then line (319, 99)-(0, 99), 8 else wait &H3DA, 8
4 for x! = 0.0 to 319.0 step 1.0
5 if x! < t! and x! > t! - 15.0 then line (int(x!) - 1, 99 + int(amp! * sin(2 * 3.141592654 * ((x! - 1) / (334.0 / 6.0)))))-(int(x!), 99 + int(amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0))))), 31 - int(t! - x!)
6 if x! < t! and x! > t! - 15.0 then pset(int(x!), 106 + int(((-((amp! * sin((2 * 3.141592654 * x!) / (334.0 / 6.0)))+7) + (2.0 * 100.0)) / 8.0))), 28.0 - (25.0 / ((((100.0 - (2.0 * ((-(amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) + (2.0 * 100.0)) / 8.0))) * (100.0 - (2.0 * ((-(amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) + (2.0 * 100.0)) / 8.0)))) + ((amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) * (amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))))) / 700.0)) else pset(int(x!), 106 + int(((-((amp! * sin((2 * 3.141592654 * x!) / (334.0 / 6.0)))+7) + (2.0 * 100.0)) / 8.0))), 25.0 - (25.0 / ((((100.0 - (2.0 * ((-(amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) + (2.0 * 100.0)) / 8.0))) * (100.0 - (2.0 * ((-(amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) + (2.0 * 100.0)) / 8.0)))) + ((amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))) * (amp! * sin(2 * 3.141592654 * (x! / (334.0 / 6.0)))))) / 700.0))
7 next x!
8 if t! < 334.0 then t! = t! + 1.0 else t! = 1.0
9 wend
[/syntax]
Again, untested in QB, but it worked okay in FB.
-shiftLynx