Difference between revisions of "Flags with Methods"

From ProgZoo
Jump to navigation Jump to search
Line 112: Line 112:
The Nordic Cross features in flags of Scandinavia
The Nordic Cross features in flags of Scandinavia
[[Image:flagmorenordic.png|left|frame|More Nordic crosses]]
[[Image:flagmorenordic.png|left|frame|More Nordic crosses]]
Draw the flags of:
Draw the flags of: Norway, Iceland, Faroe Islands, Orkney
 
* The small flags are 75 by 50. The line width is 6 with a border of 2 each side
Norway
* The positions are (10,10) (95,10) (10,70) (95,70)
Iceland
Faroe Islands
Orkney
The small flags are 75 by 50. The line width is 6 with a border of 2 each side. Use the colors:
<pre class=usr>
<pre class=usr>
function drawFlag(ctx){
function drawFlag(ctx){
Line 126: Line 122:
function drawFlag(ctx){
function drawFlag(ctx){
   let w = 75;
   let w = 75;
   let h = 48;
   let h = 50;
   function stripes(x,y,cl){
   function nordic(x,y,b,e,s){
     ctx.translate(x,y);
     ctx.translate(x,y);
     cl.forEach((c,i)=>{
     ctx.fillStyle = b;
      ctx.fillStyle = c;
    ctx.fillRect(0,0,w,h);
      ctx.fillRect(0,i*h/cl.length,75,h/cl.length);
    ctx.fillStyle = e;
     });
    ctx.fillRect(20,0,10,h);
    ctx.fillRect(0,20,75,10);
    ctx.fillStyle = s;
    ctx.fillRect(22,0,6,h);
     ctx.fillRect(0,22,w,6);
     ctx.translate(-x,-y);
     ctx.translate(-x,-y);
   }
   }
   stripes(10,10,['white','red']);
   nordic(10,10,'red','white','blue');
   stripes(95,10,['yellow','yellow','blue','red']);
   nordic(95,10,'blue','white','red');
   stripes(10,70,['blue','white','red','red','white','blue']);
   nordic(10,70,'white','blue','red');
   stripes(95,70,['red','blue','yellow','green']);
   nordic(95,70,'red','yellow','blue');
}
}
</pre>
</pre>
</div>
</div>

Revision as of 14:17, 17 August 2021




Three colours

Several countries have flags that contain three colors in vertical stripes.

Three colour flags

Draw the flags of:

  • France
  • Romania
  • Belgium
  • Nigeria
  • Sizes are:
    • The small flags are 75 by 50
    • The margins are 10
function drawFlag(ctx){
}
function drawFlag(ctx){
  function tri(x,y,cl){
    ctx.translate(x,y);
    cl.forEach((c,i)=>{
      ctx.fillStyle = c;
      ctx.fillRect(i*75/cl.length,0,75/cl.length,50);
    });
    ctx.translate(-x,-y);
  }
  ctx.fillStyle = 'gray';
  tri(10,10,['red','white','blue']);
  tri(95,10,['red','yellow','blue']);
  tri(10,70,['black','yellow','red']);
  tri(95,70,['green','white','green']);
}

Nordic cross

Several countries have flags that contain three colors in vertical stripes.

Nordic

The Nordic Cross features in flags of Scandinavia

Draw the flags of: Sweden, Denmark, Finland, Östergötland

  • The small flags are 75 by 50.
  • The squares on the left are 20 by 20.
  • The line width is 10.
function drawFlag(ctx){
}
function drawFlag(ctx){
  function nordic(x,y,b,f){
    ctx.translate(x,y);
    ctx.fillStyle = b;
    ctx.fillRect(0,0,75,50);
    ctx.fillStyle = f;
    ctx.fillRect(20,0,10,50);
    ctx.fillRect(0,20,75,10);
    ctx.translate(-x,-y);
  }
  nordic(10,10,'blue','yellow');
  nordic(95,10,'red','white');
  nordic(10,70,'white','blue');
  nordic(95,70,'yellow','blue');
}

Horizontal stripes

Several countries have flags that contain several horizontal stripes.

Horizontal stripes

Draw the flags of: Poland, Costa Rica, Columbia, Estonia, Mauritius

  • The small flags are 75 by 48.
  • Put the four flags at (10,10) (95,10) (10,70) and (95,70)
  • It may be useful to have two adjacent same-colour stripes.
function drawFlag(ctx){
}
function drawFlag(ctx){
  let w = 75;
  let h = 48;
  function stripes(x,y,cl){
    ctx.translate(x,y);
    cl.forEach((c,i)=>{
      ctx.fillStyle = c;
      ctx.fillRect(0,i*h/cl.length,75,h/cl.length);
    });
    ctx.translate(-x,-y);
  }
  stripes(10,10,['white','red']);
  stripes(95,10,['yellow','yellow','blue','red']);
  stripes(10,70,['blue','white','red','red','white','blue']);
  stripes(95,70,['red','blue','yellow','green']);
}

More Nordic crosses

The Nordic Cross features in flags of Scandinavia

More Nordic crosses

Draw the flags of: Norway, Iceland, Faroe Islands, Orkney

  • The small flags are 75 by 50. The line width is 6 with a border of 2 each side
  • The positions are (10,10) (95,10) (10,70) (95,70)
function drawFlag(ctx){
}
function drawFlag(ctx){
  let w = 75;
  let h = 50;
  function nordic(x,y,b,e,s){
    ctx.translate(x,y);
    ctx.fillStyle = b;
    ctx.fillRect(0,0,w,h);
    ctx.fillStyle = e;
    ctx.fillRect(20,0,10,h);
    ctx.fillRect(0,20,75,10);
    ctx.fillStyle = s;
    ctx.fillRect(22,0,6,h);
    ctx.fillRect(0,22,w,6);
    ctx.translate(-x,-y);
  }
  nordic(10,10,'red','white','blue');
  nordic(95,10,'blue','white','red');
  nordic(10,70,'white','blue','red');
  nordic(95,70,'red','yellow','blue');
}