1 |
greg |
1.2 |
{ RCSid $Id$ } |
2 |
greg |
1.1 |
{ |
3 |
|
|
Compute Venetian Blinds angle to exclude direct sun. |
4 |
|
|
|
5 |
|
|
3/19/93 |
6 |
|
|
|
7 |
|
|
Formula by Kostantinos Papamichael, |
8 |
|
|
Translated by Greg Ward and Saba Rofchaei |
9 |
|
|
} |
10 |
|
|
{ |
11 |
|
|
Input variables are solar altitude and azimuth in degrees: |
12 |
|
|
|
13 |
|
|
SALT - solar altitude (degrees) |
14 |
|
|
SAZI - solar azimuth (degrees from South, West is positive) |
15 |
|
|
} |
16 |
|
|
|
17 |
|
|
L = .625; {slat's width} |
18 |
|
|
D = .45833; {distance between slats} |
19 |
|
|
ORIENT = 0.0; { Window orientation } |
20 |
|
|
DEGREE : PI/180.0; |
21 |
|
|
|
22 |
|
|
tan_lambda = tan(SALT*DEGREE) / cos((SAZI+ORIENT)*DEGREE); |
23 |
|
|
lambda = atan(tan_lambda) / DEGREE; |
24 |
|
|
a = tan_lambda*tan_lambda + 1.0; |
25 |
|
|
b = -2.0*(D/L); |
26 |
|
|
c = (D/L)*(D/L) - tan_lambda*tan_lambda; |
27 |
|
|
|
28 |
|
|
det = sqrt(b*b - 4.0*a*c); |
29 |
|
|
|
30 |
|
|
{calculating slats' angle corresponding to solar position} |
31 |
|
|
POS1 = asin((-b+det)/(2.0*a)) / DEGREE; |
32 |
|
|
POS2 = asin((-b-det)/(2.0*a)) / DEGREE; |
33 |
|
|
|