jsxgraph отражение многоугольника, круга и т. д. - PullRequest
0 голосов
/ 10 мая 2018

Есть опция для отражения точек ( ссылка ).Есть ли возможность для отражения других фигур, таких как многоугольник, круг, линия, угол и т. Д. Я пробовал это, но это не работает для круга, хотя работает хорошо для точек.

        var board = JXG.JSXGraph.initBoard('jxgbox', { boundingbox: [-5, 5, 5, -5], axis: true });
    linePt1 = board.create('point',[0,0],{name:''});
    linePt2 = board.create('point',[2,2],{name:''});

    p1 = board.create('point',[1,3],{name:''});
    p2 = board.create('point',[1,2],{name:''});
    c1 = board.create('circle', [p1, p2]);

    theLine = board.create('line',[linePt1,linePt2],{dash:1});


    i1 = board.create('point',[3,3],{name:''});
    i2 = board.create('point',[3,2],{name:''});
    c2 = board.create('circle', [i1, i2]);

    initialPt = board.create('point',[3,1],{name:'initial pt'});
    transform = board.create('transform',[theLine],{type:'reflect'});
    board.create('point',[initialPt,transform],{name:'reflection'});

    transform1 = board.create('transform',[theLine],{type:'reflect'});
    board.create('circle',[c2,transform1],{name:'reflection1'});
    board.update();

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Ночная сборка сегодня вечером будет содержать возможность применять преобразования к дугам, секторам, кругам и углам. Кроме того, элементы reflection и mirrorelement допускают эти элементы arc, sector, circle и angle в качестве входных элементов. Недостаток - по крайней мере, на данный момент - в том, что результирующие элементы являются кривыми для дуг, секторов и углов. Полученный элемент, когда входной элемент представляет собой круг, представляет собой коническое сечение. Причина в том, что при применении произвольного преобразования, например, к. круг, круг будет коническим.

Вот расширенный пример:

var board = JXG.JSXGraph.initBoard("jxgbox", {
    boundingbox: [-5, 5, 5, -5],
    axis: true
});

// reflection line
var li = board.create('line', [1,1,1], {
    strokeColor: '#aaaaaa', name: 'reflection line', withLabel: true});
var reflect = board.create('transform', [li], {type: 'reflect'});
var t = board.create('transform', [2, 1.5], {type: 'scale'});

// Mirror point
var p1 = board.create('point', [-0.5, 0], {name: "Mirror point"});

var c1 = board.create('circle', [[1.3, 1.3], [0, 1.3]], 
    {strokeColor: 'black', center: {visible:true}});
var c2 = board.create('circle', [c1, t], {strokeColor: 'black'});
var c3 = board.create('reflection', [c1, li], {strokeColor: 'black'});
var c4 = board.create('mirrorelement', [c1, p1], {strokeColor: 'black'});
// c2, c3, c4 are conics

var a1 = board.create('arc', [[1, 1], [0, 1], [1, 0]], 
    {strokeColor: 'red'});
var a2 = board.create('curve', [a1, t], {strokeColor: 'red'});
var a3 = board.create('mirrorelement', [a1, p1], {strokeColor: 'red'});
var a4 = board.create('reflection', [a2, li], {strokeColor: 'red'});
// a2, a3, a4 are curves

var s1 = board.create('sector', [[-3.5,-3], [-3.5, -2], [-3.5,-4]], 
    {
        anglepoint: {visible:true}, 
        center: {visible: true}, 
        radiuspoint: {visible: true}, 
        fillColor: 'yellow', strokeColor: 'black'});
var s2 = board.create('curve', [s1, reflect], 
    {fillColor: 'yellow', strokeColor: 'black'});
var s3 = board.create('mirrorelement', [s1, p1], 
    {fillColor: 'yellow', strokeColor: 'black'});
var s4 = board.create('reflection', [s2, li], 
    {fillColor: 'yellow', strokeColor: 'black', fillOpacity: 0.5});
// s2, s3, s4 are curves
var an1 = board.create('angle', [[-4,3.9], [-3, 4], [-3, 3]]);
var an2 = board.create('curve', [an1, t]);
var an3 = board.create('reflection', [an1, li]);
// an2, an3 are curves 

Пожалуйста, попробуйте.

С наилучшими пожеланиями, Альфред

0 голосов
/ 11 мая 2018

Уже через несколько недель ночные сборки уже содержат возможность применять преобразования для линий, многоугольников и кривых. Мы добавим круги, дуги, сектора и углы на следующей неделе.

...