I'm looking at two different computer graphics approaches. One of them uses a cylindrical 'virtual screen', the other uses a flat virtual screen. The problem is that while the first method, the cylindrical method, should be displayed on a cylindrical surface to look right, it is in fact mapped onto the flat computer screen. This entails some distortion. I'm trying to model this distortion.

I've drawn a diagram. It's not as confusing as I've made it sound.

P is the projection centre. A B C are objects in the real world. The dotted lines are the light rays cast from A B C to the two projection surface: cylinder, and tangent

For point A, there's no difference between the two projections.

For point B, you can see that the ray P B intersects the two surfaces at two different places. On the cylinder, the arc is marked C. On the plane, the distance down the tangent is marked T.

I can work out both. The value of C is:

2*Pi*r * (angle / 360)

Let's say the radius is 10.

The value of T is:

radius * Tan (angle)

As the angle increases, so does the difference between C and T. This describes the distortion you'd expect when plotting the cylindrically derived coordinates onto the flat plane. It's clear that for small angles the distortion is very small, but that it gets exponentially bigger as the angle increases up to 90 degrees.

I used excel to work out some values:

angle difference

1 3.72206E-05

2 0.000297873

3 0.001005936

4 0.002386479

5 0.004666219

6 0.008074083

7 0.012841779

8 0.019204385

9 0.027400961

10 0.037675166

11 0.05027592

12 0.06545808

13 0.083483156

14 0.104620059

15 0.129145897

16 0.157346814

17 0.189518881

18 0.225969048

19 0.267016164

20 0.312992061

21 0.364242734

22 0.421129598

23 0.484030853

24 0.553342961

25 0.629482248

26 0.712886644

27 0.804017581

28 0.903362063

29 1.011434936

30 1.128781365

31 1.255979569

32 1.393643817

33 1.542427741

34 1.703027994

35 1.8761883

36 2.062703943

37 2.263426764

38 2.479270726

39 2.711218123

40 2.960326538

41 3.227736634

42 3.514680928

43 3.822493663

44 4.152621983

45 4.506638569

46 4.886256015

47 5.293343193

48 5.729943951

49 6.198298549

50 6.700868299

51 7.240363998

52 7.819778844

53 8.442426679

54 9.111986612

55 9.832555281

56 10.60870834

57 11.44557309

58 12.34891482

59 13.3252397

60 14.38191838

61 15.52733514

62 16.77106891

63 18.12411461

64 19.59915553

65 21.21090104

66 22.97650882

67 24.91611711

68 27.0535222

69 29.4170495

70 32.0406858

71 34.96556928

72 38.24197599

73 41.93200756

74 46.11328674

75 50.88413124

76 56.37094474

77 62.73901936

78 70.20873915

79 79.08062204

80 89.77538678

81 102.9007312

82 119.3681945

83 140.6101861

84 169.0140455

85 208.8769712

86 268.7933451

87 368.816705

88 569.1076344

89 1170.468991

90 3.42816E+17

I don't know why it's given a value for angle = 90 because no ray can exist for such a scenario.

Now - this is rather a long winded way to produce a function between angle and difference. Is there a tidier trigonometrical function to get what I want without needing a big long excel formua to subtract a side of a triangle from the arc of a circle. It just feels a bit long winded. Perhaps it will be obvious that what I want can be calculated much more simply. Thanks