JSXGraph logo
JSXGraph
JSXGraph share

Share

Elliptic curves: group law
QR code
<iframe
src="https://jsxgraph.uni-bayreuth.de/share/iframe/elliptic-curves-group-law"
style="border: 1px solid black; overflow: hidden; width: 550px; aspect-ratio: 55 / 65;"
name="JSXGraph example: Elliptic curves: group law"
allowfullscreen
></iframe>
This code has to
<div id="board-0-wrapper" class="jxgbox-wrapper " style="width: 100%; ">
<div id="board-0" class="jxgbox" style="aspect-ratio: 1 / 1; width: 100%;" data-ar="1 / 1"></div>
</div>
<script type = "text/javascript">
/*
This example is licensed under a
Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Please note you have to mention
The Center of Mobile Learning with Digital Technology
in the credits.
*/
const BOARDID = 'board-0';
JXG.Options.label.autoposition = true;
const board = JXG.JSXGraph.initBoard(BOARDID, {
boundingbox: [-5, 5, 5, -5],
axis: true
});
var curve = board.create('implicitcurve', ['-(y**2) + x**3 - 2 * x + 1'], {strokeWidth: 2});
var A = board.create('glider', [-1.5, 0, curve]);
var B = board.create('glider', [0, 1, curve]);
var line = board.create('line', [A, B], {color: 'black', strokeWidth: 1});
var C = board.create('otherintersection', [line, curve, [A, B]], {color: 'blue'});
var D = board.create('point', [() => C.X(), () => -C.Y()], {name: '-C = A + B', color: 'blue'});
</script>
/*
This example is licensed under a
Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Please note you have to mention
The Center of Mobile Learning with Digital Technology
in the credits.
*/
const BOARDID = 'your_div_id'; // Insert your id here!
JXG.Options.label.autoposition = true;
const board = JXG.JSXGraph.initBoard(BOARDID, {
boundingbox: [-5, 5, 5, -5],
axis: true
});
var curve = board.create('implicitcurve', ['-(y**2) + x**3 - 2 * x + 1'], {strokeWidth: 2});
var A = board.create('glider', [-1.5, 0, curve]);
var B = board.create('glider', [0, 1, curve]);
var line = board.create('line', [A, B], {color: 'black', strokeWidth: 1});
var C = board.create('otherintersection', [line, curve, [A, B]], {color: 'blue'});
var D = board.create('point', [() => C.X(), () => -C.Y()], {name: '-C = A + B', color: 'blue'});
<jsxgraph width="100%" aspect-ratio="1 / 1" title="Elliptic curves: group law" description="This construction was copied from JSXGraph examples database: BTW HERE SHOULD BE A GENERATED LINKuseGlobalJS="false">
/*
This example is licensed under a
Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Please note you have to mention
The Center of Mobile Learning with Digital Technology
in the credits.
*/
JXG.Options.label.autoposition = true;
const board = JXG.JSXGraph.initBoard(BOARDID, {
boundingbox: [-5, 5, 5, -5],
axis: true
});
var curve = board.create('implicitcurve', ['-(y**2) + x**3 - 2 * x + 1'], {strokeWidth: 2});
var A = board.create('glider', [-1.5, 0, curve]);
var B = board.create('glider', [0, 1, curve]);
var line = board.create('line', [A, B], {color: 'black', strokeWidth: 1});
var C = board.create('otherintersection', [line, curve, [A, B]], {color: 'blue'});
var D = board.create('point', [() => C.X(), () => -C.Y()], {name: '-C = A + B', color: 'blue'});
</jsxgraph>

Elliptic curves: group law

Visualization of the group law of points on an elliptic curve.

Attention: The curve intersection algorithm always determines CCC as the third intersection point. In some constellations CCC will coincide with AAA or BBB. In that cases the result is wrong.

JSXGraph v1.11.1 Copyright (C) see https://jsxgraph.org1234−1−2−3−41234−1−2−3−4
0,0
–o+←↓↑→
A
B
C
-C = A + B
// Define the id of your board in BOARDID
JXG.Options.label.autoposition = true;
const board = JXG.JSXGraph.initBoard(BOARDID, {
boundingbox: [-5, 5, 5, -5],
axis: true
});
var curve = board.create('implicitcurve', ['-(y**2) + x**3 - 2 * x + 1'], {strokeWidth: 2});
var A = board.create('glider', [-1.5, 0, curve]);
var B = board.create('glider', [0, 1, curve]);
var line = board.create('line', [A, B], {color: 'black', strokeWidth: 1});
var C = board.create('otherintersection', [line, curve, [A, B]], {color: 'blue'});
var D = board.create('point', [() => C.X(), () => -C.Y()], {name: '-C = A + B', color: 'blue'});

license

This example is licensed under a Creative Commons Attribution 4.0 International License.
Please note you have to mention The Center of Mobile Learning with Digital Technology in the credits.