"); d=null; arr=null; win.status="Tegner plot..." win.document.close(); win.focus(); run(1); var tid,hlp=""; date=new Date(); tid=Math.round(0.001*(date.getTime()-time)); if (tid!=0) hlp="Maskintidsforbrug "+tid+" sekunder. "; var msg=hlp+"Maximum "+((0.001*Math.round(max*1000)).toString()).substring(0,5+Math.log(max)/Math.log(10))+" minutters skygge (roedt areal)"; win.status=msg; self.status=msg; self.defaultStatus=msg; win=null; } function cell(r,c,color,m,res,z,f,a) { r*=res; var s="",mo=""; if (m) mo=" onMouseOver='a("+z+");return true'"; if (c>1) s=" COLSPAN='"+c+"'"; win.document.write(""+a); } function img(a,ras,height,m,xOrg,yOrg,cellsX,cellsY,max,heighto,diametero2,worst,pct,dist,faceR,d,rose){ var xA=a[0]; var yA=a[1]; var zA=a[2]; var gA=a[3]; var t,xo,yo,tmp,ic,oldxo,ssxo,sxo,oldyo,found; for (var j=0;j=0 && xo=0 && yomax) max=tmp; oldxo=xo; // step right while (++xomax) max=tmp; } xo=oldxo; // step left while (--xo>=0) { ic= inCircle(xo-xOrg,yo-yOrg,0,heighto,diametero2,xA[j],yA[j],zA[j],worst,pct,gA[j],dist,faceR,rose); if (ic==0) break; tmp=d[yo*cellsX+xo]+=ic; if (tmp>max) max=tmp; } xo=oldxo; ssxo=xo; sxo=xo; oldyo=yo; // step up while (++yomax) max=tmp; found=true; xo++; } sxo=xo; xo=oldxo; // step left while (--xo>=0) { ic= inCircle(xo-xOrg,yo-yOrg,0,heighto,diametero2,xA[j],yA[j],zA[j],worst,pct,gA[j],dist,faceR,rose); if (ic==0) break; tmp=d[yo*cellsX+xo]+=ic; if (tmp>max) max=tmp; found=true; } oldxo=Math.round(0.5*(sxo+xo)); xo=oldxo; if (found==false) break; } yo=oldyo; xo=ssxo; oldxo=ssxo; // step down while (--yo>=0) { found=false; // step right while (xomax) max=tmp; found=true; xo++; } sxo=xo; xo=oldxo; // step left while (--xo>=0) { ic= inCircle(xo-xOrg,yo-yOrg,0,heighto,diametero2,xA[j],yA[j],zA[j],worst,pct,gA[j],dist,faceR,rose); if (ic==0) break; tmp=d[yo*cellsX+xo]+=ic; if (tmp>max) max=tmp; found=true; } oldxo=Math.round(0.5*(sxo+xo)); xo=oldxo; if (found==false) break; } yo=oldyo; } } } return(max) } function greys(n) { var str="0123456789ABCDEF"; var s=str.charAt(Math.floor(n/16))+str.charAt(n%16); if (s=="00") return("FF0000"); if (s=="FF") return("006600"); return(s+s+s); } function inCircle(xo,yo,zo,height,diameter2,x,y,z,worst,pct,g,dist,faceR,rose) { var alfa=(xo/x+yo*y/(x*x))/(1+(y*y)/(x*x)); if (alfa<0) return(0); // var beta=(yo-alfa*y)/x; // dissolved after alfa (orthogonal to rotor plane) and beta (othogonal to alpha, parallel to rotor plane) var rX=xo-alfa*x; var rY=yo-alfa*y; var rZ=-alfa*z; var dr=height-rZ; var dr2=dr*dr; var p=rX*rX+rY*rY; if (p+dr2>diameter2||(xo*xo)+(yo*yo)>dist) return(0); if (worst==1)return(1); if (worst==0)return(pct*acos(Math.sqrt(p/(diameter2-dr2)))/90); if (worst==2){ if (Math.sqrt(p/(diameter2-dr2))>Math.abs(cos(faceR-g))) return(0); return(1); } var res=0; var hlp=Math.sqrt(p/(diameter2-dr2)); for (var i=1;ifor "; if (ijFm.per[0].checked) res+= "et minut kl. "+ijFm.hours.value+":"+ijFm.minutes.value+" "; if (ijFm.per[1].checked) res+="en time fra "+ijFm.hours.value+":00 "; if (ijFm.per[0].checked || ijFm.per[1].checked){ if (ijFm.daylight.checked) { res+="sommertid " } res+="den " } if (ijFm.per[2].checked || ijFm.per[0].checked || ijFm.per[1].checked) res+=ijFm.date.value+". "; if (ijFm.per[3].checked || ijFm.per[2].checked || ijFm.per[0].checked || ijFm.per[1].checked) { var n=parseInt(ijFm.month.value); var m= new Array("januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"); res=res+m[n-1]; } if (ijFm.per[4].checked) res=res+"hele året"; res+=" på "+ ijFm.latitude.value+"° "; res+=ijFm.latitudeM.value+"' "; if (ijFm.ns[0].checked) res=res+"nordlig " if (ijFm.ns[1].checked) res=res+"sydlig " var ndx=ijFm.city.selectedIndex; res+="bredde"; if (ndx!=ijFm.city.options.length-1)res+=" ("+ ijFm.city.options[ndx].text+")"; var dist=parseFloat(ijFm.dist.value); var r=parseInt(ijFm.res.options[ijFm.res.selectedIndex].value); var md=parseFloat(ijFm.m.value); var x=r*Math.floor(parseInt(ijFm.ww.value)/r)*0.5; var y=r*Math.floor(parseInt(ijFm.wh.value)/r)*0.5; if ((r*dist/md)*(r*dist/md)<=x*x+y*y)res+=" på afstande op til "+dist+" m"; res+="
Copyright © 1998 Vindmølleindustrien. Reproduktion eller kommerciel brug er ulovlig." return(res); } function sin(v) { return(Math.sin(0.017453293*v))} function cos(v) { return(Math.cos(0.017453293*v))} function tan(v) { return(Math.tan(0.017453293*v))} function asin(o){return((Math.asin(o))/ 0.017453293)} function acos(o){return((Math.acos(o))/ 0.017453293)} function Clatitude(){ var latitude= parseInt(ijFm.latitude.value); if (latitude<0 || latitude>90||isNaN(latitude)) { ijFm.latitude.value=0; latitude=0; alert("Breddegraden skal være mellem 0 og 90."); } if (latitude==90) ijFm.latitudeM.value=0; ijFm.city.selectedIndex= ijFm.city.options.length-1; run(1); Csolar(); } function Clongitude(){ var longitude= parseInt(ijFm.longitude.value); if (longitude<0 || longitude>180||isNaN(longitude)) { ijFm.longitude.value=0; longitude=0; alert("Længdegraden skal væ;re mellem 0 og 180."); } if (longitude==180) ijFm.longitudeM.value=0; ijFm.city.selectedIndex= ijFm.city.options.length-1; run(1);} function ClatitudeM(){ var latitudeM= parseInt(ijFm.latitudeM.value); if (latitudeM<0 || latitudeM>59||isNaN(latitudeM)) { ijFm.latitudeM.value=0; latitudeM=0; alert("Minutters bredde skal være mellem 0 og 59."); } if (parseInt(ijFm.latitude.value)==90) ijFm.latitudeM.value=0; ijFm.city.selectedIndex= ijFm.city.options.length-1; run(1); Csolar(); } function ClongitudeM(){ var longitudeM= parseInt(ijFm.longitudeM.value); if (longitudeM<0 || longitudeM>59||isNaN(longitudeM)) { ijFm.longitudeM.value=0; alert("Minutters længde skal være mellem 0 og 59."); } if (parseInt(ijFm.longitude.value)==180) ijFm.longitudeM.value=0; ijFm.city.selectedIndex= ijFm.city.options.length-1; run(1);} function CstdMeridian(){ var stdMeridian= parseFloat(ijFm.stdMeridian.value); if (stdMeridian <0 || stdMeridian >180||isNaN(stdMeridian)) { ijFm.stdMeridian.value =0; stdMeridian= parseFloat(ijFm.stdMeridian.value); ijFm.zone.selectedIndex=0; ijFm.half.selectedIndex=0; alert("Standardtidsmedianen skal være mellem 0 og 180 grader."); } if ((stdMeridian*2)%15!=0) { ijFm.stdMeridian.value=0; ijFm.zone.selectedIndex=0; ijFm.half.selectedIndex=0; alert("Standardtidsmedianen skal være et multiplum af 7,5 grader"); } ijFm.zone.selectedIndex=Math.floor(stdMeridian/15); ijFm.half.selectedIndex=(2*stdMeridian/15)%2; run(1);} function Cdate(){ var date=parseInt(ijFm.date.value); var month=parseInt(ijFm.month.value); if (date<1||date>months[month]|| isNaN(date)) { ijFm.date.value=months[month]; alert("Datoen skal være mellem 1 og "+months[month]+"."); } run(1);} function Cmonth(){ var month=parseInt(ijFm.month.value); if (month<1 || month>12 ||isNaN(month)) { ijFm.month.value=12; alert("Måned skal være mellem 1 og 12."); } Cdate();} function Cminutes(){ var now=new Date(); var minutes= parseInt(ijFm.minutes.value); if (minutes<0 || minutes>59 ||isNaN(minutes)) { ijFm.minutes.value =1+parseInt(now.getMinutes()); alert("Minutter skal være mellem 0 og 59."); } run(1)} function Chours(){ var hours= parseInt(ijFm.hours.value); if (hours<0 || hours>23 ||isNaN(hours)) { var now=new Date(); ijFm.hours.value =1+parseInt(now.getHours()); alert("Timer skal være mellem 0 og 23."); } run(1)} function Cdaylight(){run(1)} function Cradio(){ ijFm.city.selectedIndex= ijFm.city.options.length-1; run(1); Csolar(); } function Cb(){alert("Beklager, du kan ikke ændre et resultat. Du er nødt til at ændre inputdata i stedet."); run(1); } function Cpm(){ var n=ijFm.pm.selectedIndex; if (n==0) {ijFm.ewt[0].checked=true; ijFm.ewt[1].checked=false;} else {ijFm.ewt[0].checked=false; ijFm.ewt[1].checked=true;} run(1);} function Czeast(){ijFm.pm.selectedIndex=0;run(1)} function Czwest(){ijFm.pm.selectedIndex=1;run(1)} function Cwh(){ var wh=parseInt(ijFm.wh.value); if (wh<100||isNaN(wh)){ alert("Plotterarealet skal være mindst 100 pixels højt."); ijFm.wh.value=100; } } function Cww(){ var ww=parseInt(ijFm.ww.value); if (ww<100||isNaN(ww)){ alert("Plotterarealet skal være mindt 100 pixels bredt."); ijFm.ww.value=100; } } function Cm(){ m=parseInt(ijFm.m.value); if (m<1){ alert("Plotteropløsningen skal være mindst 1 m"); ijFm.m.value=1; } if (m>100){ alert("Plotteropløsningen kan højst være 100 m"); ijFm.m.value=100; } } function Czone(){ ijFm.stdMeridian.value= 15*parseInt(ijFm.zone.selectedIndex)+ 15*parseInt(ijFm.half.selectedIndex)*0.5; Cpm(); } function Chalf(){Czone();} function Cheight() { var height=parseFloat(ijFm.height.value); var diameter=parseFloat(ijFm.diameter.value); if (height<0.5*diameter||isNaN(height)) { alert("Du kan ikke have en tårnhøjde, som er mindre end halvdelen af rotordiameteren, medmindre du graver et hul til rotoren. Prøv igen."); ijFm.height.value=0.5*diameter; } run(1); } function Cdiameter(){ var height=parseFloat(ijFm.height.value); var diameter=parseFloat(ijFm.diameter.value); if (height<0.5*diameter||isNaN(diameter)) { alert("Du kan ikke have en tårnhøjde, som er mindre end halvdelen af rotordiameteren, medmindre du graver et hul til rotoren. Prøv igen."); ijFm.diameter.value=02*height; } run(1); } function Cpct(){ var pct=parseFloat(ijFm.pct.value); if (pct<1||isNaN(pct)) { alert("Beklager, rotoren skal køre mindst 1 pct. af tiden"); ijFm.pct.value=1; } if (pct>100){ alert("Beklager, rotoren kan ikke køre mere end 100 pct. af tiden."); ijFm.pct.value=100; } } function Csun(){ var sun=parseFloat(ijFm.sun.value); if (sun<1||isNaN(sun)) { alert("Beklager, solen skal være synlig i mindst 1 pct. af dagtimerne."); ijFm.sun.value=1; } if (sun>100){ alert("Beklager, solen kan ikke være synlig mere end 100 pct. af dagtimerne."); ijFm.sun.value=100; } } function CfaceR() { ijFm.dir[2].click(); var faceR=parseFloat(ijFm.faceR.value); if (faceR>90||faceR<-90||isNaN(faceR)){ alert("Beklager, rotoren skal have fronten placeret med en vinkel på mellem 90 og -90 grader.."); ijFm.faceR.value=0; } faceR=parseFloat(ijFm.faceR.value); var other=true; for (var i=ijFm.faceM.options.length-2;i>=0;i--){ if (faceR==ijFm.faceM.options[i].value) { ijFm.faceM.selectedIndex=i; other=false; } } if (other) ijFm.faceM.selectedIndex= ijFm.faceM.options.length-1; } function CfaceM(){ ijFm.dir[2].click(); var n=ijFm.faceM.selectedIndex; if (n!=ijFm.faceM.options.length-1) { ijFm.faceR.value =parseFloat(ijFm.faceM.options[n].value); } } function Cdist(){ var dist=ijFm.dist.value; if (dist>5000||dist<100||isNaN(dist)){ alert("Beklager, maksimumsafstanden for skyggeberegning skal ligge mellem 100 og 5000 m."); ijFm.dist.value=1000; } } function Ccompass(){ var a8=new Array("N-S.......0/180","SE-NW...315/135","E-W......270/90","NE-SW....225/45","bruges ikke","bruges ikke","bruges ikke","bruges ikke"); var a12=new Array("N-S.......0/180","SSE-NNW.330/150","ESE-WNW.300/120","E-W......270/90","ENE-WSW..240/60","NNE-SSW..210/30","bruges ikke","bruges ikke"); var a16=new Array("N-S.......0-180","SSE-NNW.338/158","SE-NW...315/135","ESE-WNW.247/113","E-W......270/90","ENE-WSW..292/68","NE-SW....315/45","NNE-SSW..337/23"); var dc=new Array(a8,a12,a16); var n=parseInt(ijFm.compass.selectedIndex); for (var i=0;i<8;i++){ ijFm.elements["d"+(i+1)].value=dc[n][i]; } var d=parseInt(ijFm.compass.options[ijFm.compass.selectedIndex].value); var sum=0; for (var i=1;i<=d;i++){ sum+=parseFloat(ijFm.elements["b"+i].value); } ijFm.b9.value=sum; } function Cno(){ alert("Beklager, du kan ikke ændre et resultat."); Ccompass(); } function Cbs(n){ var d=parseInt(ijFm.compass.options[ijFm.compass.selectedIndex].value); n=parseInt(n); if (n>d){ alert("Beklager, det felt bruges ikke. Du skal kun specificere "+d+" forskellige retninger, da det jo virker på samme måde, når rotoren er drejet 180 grader."); ijFm.elements["b"+n].value="bruges ikke"; } else{ var v=parseFloat(ijFm.elements["b"+n].value); if (v<0||v>100||isNaN(v)){ alert("Beklager, den procentdel af tiden, som rotoren er i denne retning i vindrosetabellen ("+((n-1)*180/d)+" grader) skal være mellem 0 og 100 procent af tiden."); ijFm.elements["b"+n].value=0; } } var sum=0; for (var i=1;i<=d;i++){ sum+=parseFloat(ijFm.elements["b"+i].value); } ijFm.b9.value=sum; } // (c) Copyright 1998 Vindm¿lleindustrien