User:Warty
Jump to navigation
Jump to search
ILS in HUD
This has now been created as ILS in HUD --Warty (talk) 04:02, 30 December 2015 (EST)
Carrier Landing system in HUD
This Howto Details modifications to the Canvas-based ILS_in_HUD Wiki.
The Canvas graphics elements
Additions to the new: func(placement)
# ----------------------------------------------------------------- Carrier Landing System
# UP/DOWN:
# glide slope indicator for CARRIER
m.gsiC = m.root.createChild("group", "GSI");
m.gsiC.createChild("path")
.moveTo(8, 0)
.arcSmallCCW(8, 8, 0, -16, 0)
.arcSmallCCW(8, 8, 0, 16, 0)
.moveTo(-4, 0)
.horiz(-150)
.moveTo(4, 0)
.horiz(150)
.setStrokeLineWidth(2.0)
.setColor(1,1,0);
# Slope to CARRIER vertical needle deflection text box (up/down)
m.STC =
m.text.createChild("text")
.setFontSize(14, 0.9)
.setDrawMode(3)
.setPadding(2)
.setAlignment("center-top")
.setTranslation(180, -20)
.setColor(1,1,0);
# LEFT/RIGHT:
# localiser beam indicator for CARRIER
m.lbiC = m.root.createChild("group", "GSI");
m.lbiC.createChild("path")
.moveTo(8, 0)
.arcSmallCCW(8, 8, 0, -16, 0)
.arcSmallCCW(8, 8, 0, 16, 0)
.moveTo(0, -4)
.vert(-40)
.moveTo(0, 4)
.vert(95)
.setStrokeLineWidth(2.0)
.setColor(1,1,0);
# For Carrier LANDING DECK heading text box
m.carrierHdgTxt =
m.text.createChild("text")
.setFontSize(16, 0.9)
.setAlignment("right-top")
.setTranslation(240, 105)
.setColor(1,1,0);
# Bearing TO the carrier text box
m.carrierBrgTxt =
m.text.createChild("text")
.setFontSize(16, 0.9)
.setAlignment("right-top")
.setTranslation(240, 90)
.setColor(1,1,0);
# Carrier Offset text box
m.carrierOffTxt =
m.text.createChild("text")
.setFontSize(16, 0.9)
.setAlignment("center-top")
.setTranslation(0, 100)
.setColor(1,1,0);
# Carrier pointer text box
m.carrierDiagramTxt =
m.text.createChild("text")
.setFontSize(24, 0.9)
.setAlignment("center-top")
.setTranslation(0, -70)
.setColor(1,1,0)
.setText('=>');
# relativeDeckHeading text box
m.relativeDeckHeadingText =
m.text.createChild("text")
.setFontSize(12, 1.0)
.setAlignment("center-top")
.setTranslation(0, -55)
.setColor(1,1,0);
# ---------------------------------------------------------- end of Carrier Landing System
Drawing them on the HUD
Additions to the update: func()
# The CARRIER Glide Slope Up/Down needle
var closestCarrier = 0;
var slopeToCarrierProp = sprintf("/ai/models/carrier[%d]/controls/flols/angle-degs", closestCarrier);
var slopeToCarrier = getprop(slopeToCarrierProp);
me.STC.setText(sprintf("%1.2f", -slopeToCarrier));
me.STC.setTranslation(185, 20*(slopeToCarrier -3) -5 );
me.gsiC.setTranslation(0, 20*(slopeToCarrier -3) );
# The CARRIER approach heading Left/Right needle
var carrierHdgProp = sprintf("/ai/models/carrier[%d]/orientation/true-heading-deg", closestCarrier);
var carrierHdg = getprop(carrierHdgProp);
me.carrierHdgTxt.setText(sprintf("DeckHdg: %1.0f", carrierHdg-8)); # allow for landing deck offset
var carrierBrgTo = getprop("/instrumentation/tacan/indicated-bearing-true-deg");
me.carrierBrgTxt.setText(sprintf("BrgTo: %1.0f", carrierBrgTo)); # heading TO the carrier
var carrierOffset = carrierHdg - carrierBrgTo -8 ; # landing deck offset
me.carrierOffTxt.setText(sprintf("%1.1f", -carrierOffset));
me.carrierOffTxt.setTranslation(-10*(carrierOffset), 100 );
me.lbiC.setTranslation(-10*(carrierOffset), 0 );
var currentHeading = getprop("/orientation/heading-deg");
var relativeDeckHeading = -(currentHeading - carrierHdg +8) ;
me.relativeDeckHeadingText.setText(sprintf("RelHdg: %1.0f", relativeDeckHeading)); # landing deck offset
me.carrierDiagramTxt.setRotation( ((relativeDeckHeading -105 )* math.pi )/ 180);
var hdgOffsetToCarrier = currentHeading - carrierBrgTo;
me.carrierDiagramTxt.setTranslation(-10*(hdgOffsetToCarrier), -90 );