ЗАКАНЧИВАТЬ Raphael, в библиотеку JavaScript, которая обтекает VML в IE и SVG в стандартах совместимых браузеров. Это довольно легко использовать и довольно хорошо documented.
Предоставленный элемент path
(используемый для рисования полигона и полилиний) использует SVG path string syntax, который является немного загадочным, но довольно простым для понимания. Конечно, Вы можете продлить Raphael использовать более простой синтаксис:
Raphael.fn.polygon = function() { // supply x,y coordinates as arguments
var self = this.path();
self.coords = [];
for (var i=0;i<arguments.length;i++) self.coords.push(arguments[i]);
self.update = function() {
var pathlist = [];
// the M command moves the cursor:
pathlist.push('M'+self.coords[0]+' '+self.coords[1]);
// the L command draws a line:
pathlist.push('L');
// Now push the remaining coordinates:
for (var i=2;i<self.coords.length;i++) {
pathlist.push(self.coords[i]);
}
// the Z command closes the path:
pathlist.push('Z');
self.attr('path',pathlist.join(' '));
}
self.update();
return self;
}
Что позволит вам сделать:
<div id="MyArea"></div>
<script>
var paper = Raphael("MyArea",640,480);
var mypolygon = paper.polygon(
10, 10,
20, 20,
10, 30
);
// you can even modify it after creation:
mypolygon.coords.push(15,20);
mypolygon.update();
</script>
Или создать свой собственный полигон API по вкусу, если вам не нравится моя.
EDIT: исправлены некоторые небольшие ошибки.
:) Спасибо за вашу помощь и для вашего кода. Я никогда не работаю с VML, но я это сделаю. –
Я только что заметил ошибку в моем коде: не возвратил себя в конце функции. Сейчас (надеюсь) исправлено. – slebetman
Чтобы вычислить координаты многоугольника (например, шестиугольник в моем случае), вы можете использовать ответ @Andrew Staroscik здесь http://stackoverflow.com/questions/4839993/how-to-draw-polygons-on-an-html5 -canvas –