<%@ Language=VBScript %><% option explicit %> <% Response.Buffer = FALSE %> <% Response.ContentType = "image/svg+xml" %> <% '--- general --- DIM ScreenWidth, ScreenHeight DIM timeout DIM msg '-- for errors DIM CS_1 'Connection String DIM SID 'sessionID DIM RS_0, RS_1, RS_2, RS_3 'RecordSet DIM Q_0, Q_1, Q_2, Q_3 'SQL query against the db DIM RWline1, RWline2, RWline3 '--- stage and audience (viewer) --- DIM StageWidth 'stage width in mm, centre=0 DIM frontStageLeft, frontStageRight, frontStageCentre DIM frontStageInterval 'for 20 front stage riser lines - for apron grid DIM backStageLeft, backStageRight 'horizontal distance of backstage corners DIM backStageInterval 'connecting front stage riser lines to the backStage DIM StageFrontFloor 'y coordinate for StageFront DIM AspectRatio1 'screen client ratio, for assigning height of stage DIM Scale1 'scaling DIM ProsceniumHeight 'height above stage front that is visible DIM frontApronHeight 'for 20 front stage riser lines DIM maxFontSize '600 DIM StageDepth 'stage depth in mm, front=0 DIM backStage 'horizon line for back of the stage DIM ViewDepth, ViewHeight 'viewer eye relative to stage front and stage floor DIM horizAngle 'arctan of backstage corner / distance from viewer DIM vertAngleF 'arctan of viewer height / stage front distance DIM vertAngleR 'arctan of viewer height / stage rear distance DIM viewBox_str 'the 4 params as a string DIM viewBox_x1, viewBox_y1, viewBox_x2, viewBox_y2 '"0 0 24500 13200" ' temp params DIM x1, x2 DIM y1, y2 DIM i1, i2 '--- header and footer text DIM footer_x, footer_y DIM header_x, header_y '--- actor: limb dimensions --- DIM left_foot_length 'box: length DIM left_foot_width 'box: width DIM left_foot_depth 'box: depth DIM right_foot_length 'box: length DIM right_foot_width 'box: width DIM right_foot_depth 'box: depth DIM left_ankle_diam 'ball: diameter DIM left_ankle_pos 'ankle pos in % from toes to heel DIM right_ankle_diam 'ball: diameter DIM right_ankle_pos 'ankle pos in % from toes to heel DIM left_lower_leg_length 'cylinder: length DIM left_lower_leg_diam 'cylinder: diameter DIM right_lower_leg_length 'cylinder: length DIM right_lower_leg_diam 'cylinder: diameter DIM left_knee_diam 'ball: diameter DIM right_knee_diam 'ball: diameter DIM left_upper_leg_length 'cylinder: length DIM left_upper_leg_diam 'cylinder: diameter DIM right_upper_leg_length 'cylinder: length DIM right_upper_leg_diam 'cylinder: diameter DIM left_hip_joint_diam 'ball: diameter DIM right_hip_joint_diam 'ball: diameter DIM hip_length 'box: length DIM hip_width 'box: width DIM hip_depth 'box: depth DIM waist_diam 'ball: diameter DIM shoulder_length 'box: length DIM shoulder_width 'box: width DIM shoulder_depth 'box: depth DIM left_shoulder_joint_diam 'ball: diameter DIM left_shoulder_joint_pos 'shoulder joint pos in % of shoulder length DIM right_shoulder_joint_diam 'ball: diameter DIM right_shoulder_joint_pos 'shoulder joint pos in % of shoulder length DIM left_upper_arm_length 'cylinder: length DIM left_upper_arm_diam 'cylinder: diameter DIM right_upper_arm_length 'cylinder: length DIM right_upper_arm_diam 'cylinder: diameter DIM left_elbow_diam 'ball: diameter DIM right_elbow_diam 'ball: diameter DIM left_lower_arm_length 'cylinder: length DIM left_lower_arm_diam 'cylinder: diameter DIM right_lower_arm_length 'cylinder: length DIM right_lower_arm_diam 'cylinder: diameter DIM left_wrist_diam 'ball: diameter DIM right_wrist_diam 'ball: diameter DIM left_hand_length 'box: length DIM left_hand_width 'box: width DIM left_hand_depth 'box: depth DIM right_hand_length 'box: length DIM right_hand_width 'box: width DIM right_hand_depth 'box: depth DIM neck_diam 'ball: diameter DIM head_length 'box: length DIM head_width 'box: width DIM head_depth 'box: depth DIM eye_pos 'eye position in % from chin to top of head DIM eye_diam 'ball: diameter '--- actor: joint rotation angles --- DIM waist_forward_angle '"rotate forward to bring hips (plus knees?) closer to shoulders - or arch back, left to right horizontal axis" DIM waist_sideways_angle '"rotate sideways in vertical plane (eg lower left shoulder), belly-button to back horizontal axis" DIM waist_twist_angle '"rotate (twist) to bring hips and shoulders out of the same horizontal plane, vertical axis twist" DIM left_hip_joint_forward_angle '"left, rot: front" DIM left_hip_joint_sideways_angle '"left, rot: side" DIM left_hip_joint_twist_angle '"left, rot: axis" DIM right_hip_joint_forward_angle '"right, rot: front" DIM right_hip_joint_sideways_angle '"right, rot: side" DIM right_hip_joint_twist_angle '"right, rot: axis" DIM left_knee_forward_angle 'left rot lower leg to back DIM left_knee_twist_angle 'twist-turn ankle relative to knee DIM right_knee_forward_angle 'right rot lower leg to back DIM right_knee_twist_angle 'twist-turn ankle relative to knee DIM left_ankle_forward_angle 'foot up toward knee DIM left_ankle_sideways_angle 'pidgeon toed or toes pointing outward DIM left_ankle_twist_angle '"foot sideways, instep or small-toe to heel" DIM right_ankle_forward_angle 'foot up toward knee DIM right_ankle_sideways_angle 'pidgeon toed or toes pointing outward DIM right_ankle_twist_angle '"foot sideways, instep or small-toe to heel" DIM left_shoulder_joint_forward_angle 'upper arm up in front DIM left_shoulder_joint_sideways_angle 'upper arm up to the left DIM left_shoulder_joint_twist_angle 'twist elbow DIM right_shoulder_joint_forward_angle 'upper arm up in front DIM right_shoulder_joint_sideways_angle 'upper arm up to the right DIM right_shoulder_joint_twist_angle 'twist elbow DIM left_elbow_forward_angle 'lower arm toward upper arm DIM left_elbow_twist_angle 'twist wrist relative to elbow DIM right_elbow_forward_angle 'lower arm toward upper arm DIM right_elbow_twist_angle 'twist wrist relative to elbow DIM left_wrist_forward_angle 'hand up and down DIM left_wrist_sideways_angle 'hand side to side DIM right_wrist_forward_angle 'hand up and down DIM right_wrist_sideways_angle 'hand side to side DIM neck_forward_angle 'head forward toward waist DIM neck_sideways_angle 'top of head (ear) sideways toward shoulder DIM neck_twist_angle 'twist head so nose points toward shoulder DIM eye_forward_angle 'line of sight up or down DIM eye_sideways_angle 'line of sight toward right or left '--- actor: position on stage --- DIM stage_width_x 'left & right relative to audience DIM stage_depth_y 'front & back relative to audience DIM stage_direction '0=facing audience, increase counterclockwise DIM stage_height 'height of waist above stage (usually claculated) DIM forward_leaning '0=vertical (for humans), increases for forward leaning DIM sideways_leaning '0=vertical (for humans), increases for leaning to the right DIM waist_pos_x, waist_pos_y 'relative to the stage DIM waist_pos_x1, waist_pos_y1, waist_pos_x2, waist_pos_y2 '-------------- '' extend the timeout to allow for long files timeout = Server.ScriptTimeout '' Response.Write "Initial timeout=" & timeout & "
" Server.ScriptTimeout = 1200 ScreenWidth = Request.Cookies("Humble")("ScreenWidth") ScreenHeight = Request.Cookies("Humble")("ScreenHeight") AspectRatio1 = ScreenWidth / ScreenHeight CS_1 = "DSN=action" '--- stage and audience (viewer) --- Q_0 = "SELECT * FROM stage" ' Response.Write Q_0 & "
" SET RS_0 = Server.CreateObject("ADODB.Recordset") RS_0.Open Q_0, CS_1, adOpenKeySet, adLockPessimistic, adCmdText '' msg = " *** found data *** " ' IF RS_0.EOF THEN ' msg = " *** no data gen_parent=" & gen_parent & " *** " '' Response.Redirect("/help/session.htm") ' END IF ' RS_0.MoveFirst RS_0.Find "param = 'StageDepth'", , 1, 1 StageDepth = RS_0.Fields("value") RS_0.Find "param = 'StageWidth'", , 1, 1 StageWidth = RS_0.Fields("value") RS_0.Find "param = 'ViewDepth'", , 1, 1 ViewDepth = RS_0.Fields("value") RS_0.Find "param = 'ViewHeight'", , 1, 1 ViewHeight = RS_0.Fields("value") ' use mm as dimensions, using the same scale for horizontal and vertical ' use 1mm per graphing unit, 1000 units per m ' --- stage dimensions -- proscenium opening --- ProsceniumHeight = StageWidth / AspectRatio1 IF ProsceniumHeight > 6000 THEN ProsceniumHeight = 6000 ELSEIF ProsceniumHeight < 2300 THEN ProsceniumHeight = 2000 StageWidth = ProsceniumHeight * AspectRatio1 ELSE ProsceniumHeight = ProsceniumHeight * 0.85 ' allow for header, apron, footer END IF viewBox_x1 = 0 'minimum x coordinate - left margin on screen viewBox_x2 = StageWidth '24500? right margin viewBox_y1 = 0 'minimum y coordinate - top of screen viewBox_y2 = viewBox_x2 / AspectRatio1 'bottom of screen - has to be inverted for stage-floor=0 '--- x dimension -- width of the stage -- use the whole screen frontStageCentre = (viewBox_x2 - viewBox_x1) / 2 frontStageInterval = viewBox_x2 / 20 '--approx 1000 frontStageLeft = frontStageCentre - 10*frontStageInterval 'approx 1750 frontStageRight = frontStageCentre + 10*frontStageInterval '---- calculate and set up the back of the stage --- ' horizontal angles and screen distances horizAngle = ATN( (StageWidth/2) / (StageDepth+ViewDepth)) 'angle of view to right rear corner backStageRight = TAN( horizAngle) * ViewDepth 'from centre to intersection of view with front stage backStageInterval = backStageRight / 10 backStageLeft = frontStageCentre - backStageRight 'relative to centre: left corner = centre - x2 '--- text: headers, footers, legends header_x = frontStageInterval 'distance of header text from left margin footer_x = frontStageInterval / 2 'distance of footer text from left margin maxFontSize = StageWidth / 40 '--- y dimension -- height of the stage plus room for headers and footers y1 = viewBox_y2 - ProsceniumHeight y2 = y1 / 4 frontApronHeight = y2 / 2 StageFrontFloor = ProsceniumHeight + y2*2 '---- calculate and set up the stage --- ' vertical angles and screen distances vertAngleR = ATN( ViewHeight / (ViewDepth+StageDepth)) backStage = TAN( vertAngleR) * StageDepth '--- text: headers, footers, legends header_y = y2*2 footer_y = viewBox_y2 - y2/2 ' use degrees as measures for angles (rather than radians) - familiarity ' use % where a relative value is required ' set it up for a graph bounding box of 20000 horizontal by 10000 vertical ' the viewBox has to be larger, to allow for left (and right?) parameter stuff ' the graph should have 20 by 10 internal dividers (grid pattern) viewBox_str = viewBox_x1 & " " & viewBox_y1 & " " & viewBox_x2 & " " & viewBox_y2 '---------------------------------------------------------------------- '--- position on stage --- Q_1 = "SELECT * FROM Position_Pose" ' Response.Write Q_1 & "
" SET RS_1 = Server.CreateObject("ADODB.Recordset") RS_1.Open Q_1, CS_1, adOpenKeySet, adLockPessimistic, adCmdText RS_1.Find "param = 'stage_width_x'", , 1, 1 stage_width_x = RS_1.Fields("value") RS_1.Find "param = 'stage_depth_y'", , 1, 1 stage_depth_y = RS_1.Fields("value") RS_1.Find "param = 'stage_direction'", , 1, 1 stage_direction = RS_1.Fields("value") RS_1.Find "param = 'stage_height'", , 1, 1 stage_height = RS_1.Fields("value") RS_1.Find "param = 'forward_leaning'", , 1, 1 forward_leaning = RS_1.Fields("value") RS_1.Find "param = 'sideways_leaning'", , 1, 1 sideways_leaning = RS_1.Fields("value") '---- calculate and set up the stage position for the actor --- ' horizontal angles and screen distances horizAngle = ATN( stage_width_x / (ViewDepth+stage_depth_y)) 'angle to position waist_pos_x2 = TAN( horizAngle) * ViewDepth 'from centre to intersection of view with front stage waist_pos_x = frontStageCentre + waist_pos_x2 'relative to centre waist_pos_x1 = frontStageCentre - waist_pos_x2 'symmetric about centre ' vertical angles and screen distances ' vertAngleF = ATN( ViewHeight / ViewDepth) vertAngleR = ATN( ViewHeight / (ViewDepth+stage_depth_y)) waist_pos_y2 = TAN( vertAngleR) * stage_depth_y waist_pos_y = StageFrontFloor-waist_pos_y2 ' viewBox_x1 = waist_pos_x-2000 ' viewBox_x2 = waist_pos_x+1000 ' viewBox_y1 = waist_pos_y-2000 ' viewBox_y2 = waist_pos_y+1000 ' viewBox_str = viewBox_x1 & " " & viewBox_y1 & " " & viewBox_x2 & " " & viewBox_y2 '---------------------------------------------------------------------- '--- limb dimensions --- Q_2 = "SELECT * FROM limb_Size" ' Response.Write Q_2 & "
" SET RS_2 = Server.CreateObject("ADODB.Recordset") RS_2.Open Q_2, CS_1, adOpenKeySet, adLockPessimistic, adCmdText RS_2.Find "param = 'left_foot_length'", , 1, 1 left_foot_length = RS_2.Fields("value") RS_2.Find "param = 'left_foot_width'", , 1, 1 left_foot_width = RS_2.Fields("value") RS_2.Find "param = 'left_foot_depth'", , 1, 1 left_foot_depth = RS_2.Fields("value") RS_2.Find "param = 'right_foot_length'", , 1, 1 right_foot_length = RS_2.Fields("value") RS_2.Find "param = 'right_foot_width'", , 1, 1 right_foot_width = RS_2.Fields("value") RS_2.Find "param = 'right_foot_depth'", , 1, 1 right_foot_depth = RS_2.Fields("value") RS_2.Find "param = 'left_ankle_diam'", , 1, 1 left_ankle_diam = RS_2.Fields("value") RS_2.Find "param = 'left_ankle_pos'", , 1, 1 left_ankle_pos = RS_2.Fields("value") RS_2.Find "param = 'right_ankle_diam'", , 1, 1 right_ankle_diam = RS_2.Fields("value") RS_2.Find "param = 'right_ankle_pos'", , 1, 1 right_ankle_pos = RS_2.Fields("value") RS_2.Find "param = 'left_lower_leg_length'", , 1, 1 left_lower_leg_length = RS_2.Fields("value") RS_2.Find "param = 'left_lower_leg_diam'", , 1, 1 left_lower_leg_diam = RS_2.Fields("value") RS_2.Find "param = 'right_lower_leg_length'", , 1, 1 right_lower_leg_length = RS_2.Fields("value") RS_2.Find "param = 'right_lower_leg_diam'", , 1, 1 right_lower_leg_diam = RS_2.Fields("value") RS_2.Find "param = 'left_knee_diam'", , 1, 1 left_knee_diam = RS_2.Fields("value") RS_2.Find "param = 'right_knee_diam'", , 1, 1 right_knee_diam = RS_2.Fields("value") RS_2.Find "param = 'left_upper_leg_length'", , 1, 1 left_upper_leg_length = RS_2.Fields("value") RS_2.Find "param = 'left_upper_leg_diam'", , 1, 1 left_upper_leg_diam = RS_2.Fields("value") RS_2.Find "param = 'right_upper_leg_length'", , 1, 1 right_upper_leg_length = RS_2.Fields("value") RS_2.Find "param = 'right_upper_leg_diam'", , 1, 1 right_upper_leg_diam = RS_2.Fields("value") RS_2.Find "param = 'left_hip_joint_diam'", , 1, 1 left_hip_joint_diam = RS_2.Fields("value") RS_2.Find "param = 'right_hip_joint_diam'", , 1, 1 right_hip_joint_diam = RS_2.Fields("value") RS_2.Find "param = 'hip_length'", , 1, 1 hip_length = RS_2.Fields("value") RS_2.Find "param = 'hip_width'", , 1, 1 hip_width = RS_2.Fields("value") RS_2.Find "param = 'hip_depth'", , 1, 1 hip_depth = RS_2.Fields("value") RS_2.Find "param = 'waist_diam'", , 1, 1 waist_diam = RS_2.Fields("value") RS_2.Find "param = 'shoulder_length'", , 1, 1 shoulder_length = RS_2.Fields("value") RS_2.Find "param = 'shoulder_width'", , 1, 1 shoulder_width = RS_2.Fields("value") RS_2.Find "param = 'shoulder_depth'", , 1, 1 shoulder_depth = RS_2.Fields("value") RS_2.Find "param = 'left_shoulder_joint_diam'", , 1, 1 left_shoulder_joint_diam = RS_2.Fields("value") RS_2.Find "param = 'left_shoulder_joint_pos'", , 1, 1 left_shoulder_joint_pos = RS_2.Fields("value") RS_2.Find "param = 'right_shoulder_joint_diam'", , 1, 1 right_shoulder_joint_diam = RS_2.Fields("value") RS_2.Find "param = 'right_shoulder_joint_pos'", , 1, 1 right_shoulder_joint_pos = RS_2.Fields("value") RS_2.Find "param = 'left_upper_arm_length'", , 1, 1 left_upper_arm_length = RS_2.Fields("value") RS_2.Find "param = 'left_upper_arm_diam'", , 1, 1 left_upper_arm_diam = RS_2.Fields("value") RS_2.Find "param = 'right_upper_arm_length'", , 1, 1 right_upper_arm_length = RS_2.Fields("value") RS_2.Find "param = 'right_upper_arm_diam'", , 1, 1 right_upper_arm_diam = RS_2.Fields("value") RS_2.Find "param = 'left_elbow_diam'", , 1, 1 left_elbow_diam = RS_2.Fields("value") RS_2.Find "param = 'right_elbow_diam'", , 1, 1 right_elbow_diam = RS_2.Fields("value") RS_2.Find "param = 'left_lower_arm_length'", , 1, 1 left_lower_arm_length = RS_2.Fields("value") RS_2.Find "param = 'left_lower_arm_diam'", , 1, 1 left_lower_arm_diam = RS_2.Fields("value") RS_2.Find "param = 'right_lower_arm_length'", , 1, 1 right_lower_arm_length = RS_2.Fields("value") RS_2.Find "param = 'right_lower_arm_diam'", , 1, 1 right_lower_arm_diam = RS_2.Fields("value") RS_2.Find "param = 'left_wrist_diam'", , 1, 1 left_wrist_diam = RS_2.Fields("value") RS_2.Find "param = 'right_wrist_diam'", , 1, 1 right_wrist_diam = RS_2.Fields("value") RS_2.Find "param = 'left_hand_length'", , 1, 1 left_hand_length = RS_2.Fields("value") RS_2.Find "param = 'left_hand_width'", , 1, 1 left_hand_width = RS_2.Fields("value") RS_2.Find "param = 'left_hand_depth'", , 1, 1 left_hand_depth = RS_2.Fields("value") RS_2.Find "param = 'right_hand_length'", , 1, 1 right_hand_length = RS_2.Fields("value") RS_2.Find "param = 'right_hand_width'", , 1, 1 right_hand_width = RS_2.Fields("value") RS_2.Find "param = 'right_hand_depth'", , 1, 1 right_hand_depth = RS_2.Fields("value") RS_2.Find "param = 'neck_diam'", , 1, 1 neck_diam = RS_2.Fields("value") RS_2.Find "param = 'head_length'", , 1, 1 head_length = RS_2.Fields("value") RS_2.Find "param = 'head_width'", , 1, 1 head_width = RS_2.Fields("value") RS_2.Find "param = 'head_depth'", , 1, 1 head_depth = RS_2.Fields("value") RS_2.Find "param = 'eye_pos'", , 1, 1 eye_pos = RS_2.Fields("value") RS_2.Find "param = 'eye_diam'", , 1, 1 eye_diam = RS_2.Fields("value") '---------------------------------------------------------------------- '--- pose of actor, relative to the waist --- Q_3 = "SELECT * FROM joint_angle_Pose" ' Response.Write Q_3 & "
" SET RS_3 = Server.CreateObject("ADODB.Recordset") RS_3.Open Q_3, CS_1, adOpenKeySet, adLockPessimistic, adCmdText '--- pose with joint rotation angles radiating out from the waist ------ RS_3.Find "param = 'waist_forward_angle'", , 1, 1 waist_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'waist_sideways_angle'", , 1, 1 waist_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'waist_twist_angle'", , 1, 1 waist_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_hip_joint_forward_angle'", , 1, 1 left_hip_joint_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_hip_joint_sideways_angle'", , 1, 1 left_hip_joint_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'left_hip_joint_twist_angle'", , 1, 1 left_hip_joint_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'right_hip_joint_forward_angle'", , 1, 1 right_hip_joint_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_hip_joint_sideways_angle'", , 1, 1 right_hip_joint_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'right_hip_joint_twist_angle'", , 1, 1 right_hip_joint_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_knee_forward_angle'", , 1, 1 left_knee_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_knee_twist_angle'", , 1, 1 left_knee_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'right_knee_forward_angle'", , 1, 1 right_knee_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_knee_twist_angle'", , 1, 1 right_knee_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_ankle_forward_angle'", , 1, 1 left_ankle_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_ankle_sideways_angle'", , 1, 1 left_ankle_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'left_ankle_twist_angle'", , 1, 1 left_ankle_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'right_ankle_forward_angle'", , 1, 1 right_ankle_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_ankle_sideways_angle'", , 1, 1 right_ankle_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'right_ankle_twist_angle'", , 1, 1 right_ankle_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_shoulder_joint_forward_angle'", , 1, 1 left_shoulder_joint_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_shoulder_joint_sideways_angle'", , 1, 1 left_shoulder_joint_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'left_shoulder_joint_twist_angle'", , 1, 1 left_shoulder_joint_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'right_shoulder_joint_forward_angle'", , 1, 1 right_shoulder_joint_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_shoulder_joint_sideways_angle'", , 1, 1 right_shoulder_joint_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'right_shoulder_joint_twist_angle'", , 1, 1 right_shoulder_joint_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_elbow_forward_angle'", , 1, 1 left_elbow_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_elbow_twist_angle'", , 1, 1 left_elbow_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'right_elbow_forward_angle'", , 1, 1 right_elbow_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_elbow_twist_angle'", , 1, 1 right_elbow_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'left_wrist_forward_angle'", , 1, 1 left_wrist_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'left_wrist_sideways_angle'", , 1, 1 left_wrist_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'right_wrist_forward_angle'", , 1, 1 right_wrist_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'right_wrist_sideways_angle'", , 1, 1 right_wrist_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'neck_forward_angle'", , 1, 1 neck_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'neck_sideways_angle'", , 1, 1 neck_sideways_angle = RS_3.Fields("value") RS_3.Find "param = 'neck_twist_angle'", , 1, 1 neck_twist_angle = RS_3.Fields("value") RS_3.Find "param = 'eye_forward_angle'", , 1, 1 eye_forward_angle = RS_3.Fields("value") RS_3.Find "param = 'eye_sideways_angle'", , 1, 1 eye_sideways_angle = RS_3.Fields("value") %> <%'----------------------------------------------------------------------%> Side view, left side to the audience, at position on stage <%'----------------------------------------------------------------------%> 0,0 (width=-<%=(StageWidth/2)%>mm to <%=(StageWidth/2)%>mm; depth=0 to <%=(StageDepth)%>mm) <%'----------------------------------------------------------------------%> <%'----------------------------------------------------------------------%> viewer at width=0, depth= -<%=ViewDepth%>mm from front edge of stage, eye height = <%=ViewHeight%>mm above the stage; -- actor at width=<%=stage_width_x%>mm, depth=<%=stage_depth_y%>mm, and <%=stage_height%>mm to waist <%'----------------------------------------------------------------------%> <% ' the graphing starts from the waist (centre of gravity) ' sideview assumes the actor is oriented parallel to stage-front ' for simplicity, 2D view makes no distance corrections ' 5 layers, successively nested ' 1 ----- waist, now 0,0 for hips and shoulders, using stage_height --------- ' 2 ----- hips and shoulders, using forward_leaning and waist rotation ------ %> <%'----------------------------------------------------------------------%> <%'----------------------------------------------------------------------%> line of sight <%'----------------------------------------------------------------------%> <%'----------------------------------------------------------------------%> <% '' reset the timeout Server.ScriptTimeout = timeout Response.End '-----------------------------------------------------------%>