|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!-- HORIZONTAL SLIDER --> <plugin name="slider_bg" url="slider-background.png" align="bottom" x="0" y="30" handcursor="false" zorder="1" parent="stage"/> <plugin name="slider_grip" url="slider-grip.png" align="left" edge="center" parent="slider_bg" x="0" zorder="2" dragging="if(pressed, sub(dx, mouse.stagex, drag_stagex); add(newx, drag_currentx, dx); if(newx LT 0, set(newx,0)); if(newx GT plugin[slider_bg].pixelwidth, copy(newx,plugin[slider_bg].pixelwidth)); copy(x,newx); div(val, newx, plugin[slider_bg].pixelwidth); calc(view.fov, (1 - val) * (view.fovmax - view.fovmin) + view.fovmin); delayedcall(0,dragging()); );" ondown="copy(drag_currentx,x); copy(drag_stagex,mouse.stagex); dragging();"/> <events name="sliderevents" keep="true" onviewchanged="updateslider()" /> <action name="updateslider"> calc(val,1 - (view.fov - view.fovmin) / (view.fovmax - view.fovmin)); mul(plugin[slider_grip].x, val, plugin[slider_bg].pixelwidth); </action> |
This post has been edited 6 times, last edit by "San7" (Sep 26th 2018, 8:24pm)
Quoted
But in fact it is necessary to calculate fl ?
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<events name="sliderevents2" keep="true" onviewchanged="print_F();" />
<plugin name="hotspot_pos_info" keep="true" alpha="1" align="lefttop" x="10" y="10" width="100"
url="%SWFPATH%/plugins/textfield.swf" enabled="false" padding="8"
background="true" backgroundcolor="0x2D3E50" backgroundalpha="0.7"
css="font-family:Courier; color:#FFFFFF; font-size:12px;"
/>
<action name="print_F"><![CDATA[
copy(print_F, F);
copy(print_fov, view.fov);
roundval(print_F, 2);
roundval(print_fov, 2);
calc(plugin[hotspot_pos_info].html,
'F="' + print_F + '"[br]
FOV="' + print_fov + '"[br]
');
]]></action>
<!-- dragging(Fmax) -->
<layer name="slider_S" keep="true" url="slider-background.jpg" align="lefttop" x="200" y="20" handcursor="false" zorder="1"
height="10" width="200"/>
<layer name="slider_grip_S" keep="true" url="slider-grip.png" align="left" edge="center" parent="slider_S" x="50" zorder="2" scale="0.4"
ondown="copy(drag_currentx,x); copy(drag_stagex,mouse.stagex); dragging(200);"
/>
<action name="dragging">
if(pressed,copy(newx1,newx);
sub(dx, mouse.stagex, drag_stagex);
add(newx, drag_currentx, dx);
if(newx LT 0, set(newx,0));
if(newx GT layer[slider_S].pixelwidth, copy(newx,layer[slider_S].pixelwidth));
copy(x,newx);
div(val, newx, layer[slider_S].pixelwidth);
delayedcall(0,dragging(%1););
mul(F,val,%1);
Math.atan(fl2,calc(43.27 / (2 * F)););
calc(fov, 180 / Math.PI * 2 * fl2);
set(view.fov,get(fov));
);
</action>
|
This post has been edited 1 times, last edit by "San7" (Sep 27th 2018, 8:38pm)
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<action name="dragging"> if(pressed,copy(newx1,newx); sub(dx, mouse.stagex, drag_stagex); add(newx, drag_currentx, dx); if(newx LT 0, set(newx,0)); clamp(newx,22.85,200); if(newx GT layer[slider_S].pixelwidth, copy(newx,layer[slider_S].pixelwidth)); copy(x,newx); div(val, newx, layer[slider_S].pixelwidth); delayedcall(0,dragging(%1);); mul(F,val,%1); Math.atan(fl2,calc(43.27 / (2 * F));); calc(fov, 180 / Math.PI * 2 * fl2); set(view.fov,get(fov)); ); </action> |
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<events name="sliderevents2" keep="true" onviewchanged="print_F();" />
<plugin name="hotspot_pos_info" keep="true" alpha="1" align="lefttop" x="10" y="10" width="100"
url="%SWFPATH%/plugins/textfield.swf" enabled="false" padding="8"
background="true" backgroundcolor="0x2D3E50" backgroundalpha="0.7" css="font-family:Courier; color:#FFFFFF; font-size:12px;"
/>
<action name="print_F"><![CDATA[
copy(print_F, F);
copy(print_fov, view.fov);
roundval(print_F, 2);
roundval(print_fov, 2);
calc(plugin[hotspot_pos_info].html,
'F=' + print_F + '[br]
FOV=' + print_fov
);
]]></action>
<!-- dragging(Fmax) -->
<layer name="slider_S" keep="true" url="slider-background.jpg" align="lefttop" x="200" y="20" handcursor="false" zorder="1"
height="10" width="200"/>
<layer name="slider_grip_S" keep="true" url="slider-grip.png" align="left" edge="center" parent="slider_S" x="50" zorder="2" scale="0.4"
ondown="copy(drag_currentx,x); copy(drag_stagex,mouse.stagex);dragging(70);"
/>
<action name="dragging">
if(pressed,copy(newx1,newx);
sub(dx, mouse.stagex, drag_stagex);
add(newx, drag_currentx, dx);
if(newx LT 0, set(newx,0));
clamp(newx,22.85,200);
if(newx GT layer[slider_S].pixelwidth, copy(newx,layer[slider_S].pixelwidth));
copy(x,newx);
div(val, newx, layer[slider_S].pixelwidth);
delayedcall(0,dragging(%1););
mul(F,val,%1);
Math.atan(fl2,calc(43.27 / (2 * F)););
calc(fov, 180 / Math.PI * 2 * fl2);
set(view.fov,get(fov));
);
</action>
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<!--
#############################################
# FOV TO FOCAL LENGTH #
############################################# -->
<action name="fov-to-focallength" >
set(sensor, 43.27);
set(fov, get(view.fov));
Math.atan(field,calc(sensor / (2 * fov)););
calc(focal, 180 / Math.PI * 2 * field);
</action>
<plugin name="hotspot_pos_info2" keep="true" alpha="1" align="bottom" x="300" y="350" width="100"
url="%SWFPATH%/plugins/textfield.swf" enabled="false" padding="8"
background="true" backgroundcolor="0x2D3E50" backgroundalpha="0.7" css="font-family:Courier; color:#FFFFFF; font-size:12px;"
/>
<action name="print_focal"><![CDATA[
copy(print_F, F);
copy(print_fov, view.fov);
roundval(focal, 0);
roundval(print_fov, 2);
calc(plugin[hotspot_pos_info2].html,
'F = ' + focal + '[br]
FOV=' + print_fov
);
]]></action>
<events name="showfocal" keep="true" onviewchanged="fov-to-focallength(); print_focal();" />
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<events name="showfocal" keep="true" onviewchanged="fov_to_focallength(); print_focal();" />
<plugin name="hotspot_pos_info2" keep="true" alpha="1" align="bottom" x="300" y="350" width="100"
url="%SWFPATH%/plugins/textfield.swf" enabled="false" padding="8"
background="true" backgroundcolor="0x2D3E50" backgroundalpha="0.7"
css="font-family:Courier; color:#FFFFFF; font-size:12px;"
/>
<action name="fov_to_focallength" >
set(crop_f,1); <!-- Crop factor. For a full frame - 1 -->
Math.tan(field,calc(view.fov / 114.6));
calc(focal,21.622 / (field * crop_f));
</action>
<action name="print_focal"><![CDATA[
copy(print_F, F);
copy(print_fov, view.fov);
roundval(focal, 0);
roundval(print_fov, 2);
calc(plugin[hotspot_pos_info2].html,
'F = ' + focal + '°[br]
FOV=' + print_fov
);
]]></action>
|
This post has been edited 1 times, last edit by "San7" (Sep 28th 2018, 8:21pm)