style: lighten web LIGHTS arc rendering
This commit is contained in:
@@ -513,7 +513,8 @@ function prepareLightArcCanvas(){
|
||||
function canvasArcAngle(degrees,bearing){
|
||||
return (degrees + bearing - 90) * Math.PI / 180;
|
||||
}
|
||||
function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width){
|
||||
function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width,alpha){
|
||||
ctx.save();
|
||||
ctx.beginPath();
|
||||
ctx.arc(
|
||||
x,y,radius,
|
||||
@@ -522,9 +523,11 @@ function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width){
|
||||
false
|
||||
);
|
||||
ctx.strokeStyle=color;
|
||||
ctx.globalAlpha=alpha==null?1:alpha;
|
||||
ctx.lineWidth=width;
|
||||
ctx.lineCap="butt";
|
||||
ctx.stroke();
|
||||
ctx.restore();
|
||||
}
|
||||
|
||||
function drawCaLeg(ctx,x,y,length,degrees,bearing){
|
||||
@@ -535,7 +538,8 @@ function drawCaLeg(ctx,x,y,length,degrees,bearing){
|
||||
ctx.moveTo(x,y);
|
||||
ctx.lineTo(x+length*Math.cos(angle),y+length*Math.sin(angle));
|
||||
ctx.strokeStyle=CA_COLOR.CHBLK;
|
||||
ctx.lineWidth=2;
|
||||
ctx.globalAlpha=0.82;
|
||||
ctx.lineWidth=1.35;
|
||||
ctx.stroke();
|
||||
ctx.restore();
|
||||
}
|
||||
@@ -570,8 +574,12 @@ function drawLightArcFeature(ctx,feature,bearing,width,height){
|
||||
if(end<=start)end+=360;
|
||||
const arcColor=CA_COLOR[args.length>=8?args[2]:props.s52_arc_color] || CA_COLOR.CHMGD;
|
||||
const outlineColor=CA_COLOR[args.length>=8?args[0]:props.s52_arc_outline_color] || CA_COLOR.OUTLW;
|
||||
drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,outlineColor,metrics.arcWidth+metrics.outlineWidth);
|
||||
drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,arcColor,metrics.arcWidth);
|
||||
// Keep the S-52 CA radius/angles intact, but map millimetre pen widths to a
|
||||
// lighter screen preview. Raw OUTLW=4 can otherwise dominate the chart.
|
||||
const visualArcWidth=Math.max(1.6,Math.min(3.0,metrics.arcWidth*0.90));
|
||||
const visualOutlineExtra=Math.max(2.6,Math.min(4.2,metrics.outlineWidth*0.38));
|
||||
drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,outlineColor,visualArcWidth+visualOutlineExtra,0.88);
|
||||
drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,arcColor,visualArcWidth,0.94);
|
||||
if(sectorRadius>0){
|
||||
drawCaLeg(ctx,point.x,point.y,sectorRadius,start,bearing);
|
||||
drawCaLeg(ctx,point.x,point.y,sectorRadius,end,bearing);
|
||||
|
||||
Reference in New Issue
Block a user