Skip to content
This repository was archived by the owner on Jul 29, 2019. It is now read-only.
This repository was archived by the owner on Jul 29, 2019. It is now read-only.

how to ellipse()? #3065

@jhchoi-ii

Description

@jhchoi-ii
	<head>
		<style type="text/css">
        #mynetwork {
            width: 600px;
            height: 400px;
            border: 1px solid lightgray;
        }

        p {
            max-width:600px;
        }

        h4 {
            margin-bottom:3px;
        }
    </style>
		
	</head>
	<body>
<p>
  You can draw on the canvas using normal HTML5 canvas functions. The before drawing will be behind the network, the after drawing will be in front of the network.
</p>

<div id="mynetwork"></div>
<pre id="eventSpan"></pre>
<script type="text/javascript">
  // create an array with nodes
  var nodes = new vis.DataSet([
    {id: 1, label: 'Node 1'},
    {id: 2, label: 'Node 2'},
    {id: 3, label: 'Node 3'},
    {id: 4, label: 'Node 4'},
    {id: 5, label: 'Node 5'}
  ]);

  // create an array with edges
  var edges = new vis.DataSet([
    {from: 1, to: 3},
    {from: 1, to: 2},
    {from: 2, to: 4},
    {from: 2, to: 5}
  ]);

  // create a network
  var container = document.getElementById('mynetwork');
  var data = {
    nodes: nodes,
    edges: edges
  };
  var options = {};
  var network = new vis.Network(container, data, options);

  network.on("initRedraw", function () {
    // do something like move some custom elements?
  });
  network.on("beforeDrawing", function (ctx) {
    var nodeId = 1;
    var nodePosition = network.getPositions([nodeId]);
    ctx.strokeStyle = '#294475';
    ctx.fillStyle = '#A6D5F7';
    ctx.ellipse(100, 100, 50, 20, 45 * Math.PI/180, 0, 2 * Math.PI, false);
	//ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
    ctx.fill();
    ctx.stroke();
    
    ctx.strokeStyle = '#294475';
    ctx.fillStyle = '#A6D5F7';
    ctx.ellipse(120, 120, 50, 20, 90 * Math.PI/180, 0, 2 * Math.PI, false);
	//ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
    ctx.fill();
    ctx.stroke();
    
    ctx.strokeStyle = '#294475';
    ctx.fillStyle = '#A6D5F7';
    ctx.ellipse(140, 140, 50, 20, 135 * Math.PI/180, 0, 2 * Math.PI, false);
	//ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
    ctx.fill();
    ctx.stroke();
    
    ctx.strokeStyle = '#294475';
    ctx.fillStyle = '#A6D5F7';
    ctx.ellipse(160, 160, 50, 20, 180 * Math.PI/180, 0, 2 * Math.PI, false);
	//ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
    ctx.fill();
    ctx.stroke();
  });
</script>
	</body>
</html>

.ellipse()

If you use "ctx.ellipse()" in "beforeDrawing"

The ellipse does not rotate.

how to ctx.ellipse()?
How to rotate the four ellipses differently?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions