JSXGraph — пересечения и полигоны, созданные из точек пересечений

Я новичок в jsxgraph, также не очень хорошо разбираюсь в js, надеюсь, вы могли бы указать мне правильное направление с моей проблемой.

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

Вот как выглядит весь кусок кода (почему-то jsfiddle не хочет работать! :/): https://jsfiddle.net/czarrna/me55dw4h/4/

Мой код, к сожалению, не работает :/

var typical_mn = board.create('polygon', [t_1, t_2, t_3, t_4], {
  fillColor: '#ff9600',
  withLines: false
});

var p1_1 = board.create('intersection', [l_20, typical_mn, 0], {
  visible: true
});
var p1_2 = board.create('intersection', [l_20, typical_mn, 1], {
  visible: true
});

var p2_1 = board.create('intersection', [l_30, typical_mn, 0], {
  visible: true
});
var p2_2 = board.create('intersection', [l_30, typical_mn, 1], {
  visible: true
});

var p3_1 = board.create('intersection', [l_40, typical_mn, 0], {
  visible: true
});
var p3_2 = board.create('intersection', [l_40, typical_mn, 1], {
  visible: true
});

var pol_20_30 = board.create('polygon', [p1_1, p1_2, p2_1, p2_1], {
  fillColor: '#555',
  withLines: false
});

var pol_30_40 = board.create('polygon', [p2_1, p2_1, p3_1, p3_2], {
  fillColor: '#333',
  withLines: false
});
<script src="http://czarrna.kei.pl/jsxgraph/src/loadjsxgraph.js"></script>
<script src="http://czarrna.kei.pl/jsxgraph/distrib/jsxgraph.css"></script>
<div id="jxgbox" class="jxgbox" style="width: 500px; height: 500px;"></div>

Я надеюсь, что кто-то может помочь мне с этим, пожалуйста! Был бы признателен. Спасибо


person Czarrna    schedule 21.09.2015    source источник


Ответы (1)


В настоящее время внешние библиотеки в jsfiddle должны быть включены с https. JSXGraph доступен с https, например, по адресу https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.3/jsxgraphcore.js .

На данный момент не существует алгоритма пересечения между полигонами и линиями. Но можно пересекать границы многоугольника линиями. Для этого свойство withLines полигона должно быть установлено на true. Затем к границам можно получить доступ с помощью массива borders.

В вашем примере это будет выглядеть так

var typical_mn = board.create('polygon',[t_1,t_2,t_3, t_4], {fillColor:'#ff9600', withLines:true});

in_20 = board.create('intersection', [l_20, typical_mn.borders[0]],{visible:true});
in_30 = board.create('intersection', [l_30, typical_mn.borders[0]],{visible:true});
in_40 = board.create('intersection', [l_40, typical_mn.borders[0]],{visible:true});

Пересечение между линиями и полигонами — интересная фича, я создам тикет на github.

person Alfred Wassermann    schedule 24.09.2015
comment
Альфред, большое спасибо за ответ. Это мне очень помогает. - person Czarrna; 24.09.2015