This commit is contained in:
djerom
2022-03-17 10:36:15 +05:00
parent b0cb3e60d6
commit 5fc055a05d
28 changed files with 3007 additions and 17 deletions

71
src/svgmap/SvgNodes.js Normal file
View File

@@ -0,0 +1,71 @@
import SvgNode from "./SvgNode";
export default {
// sector(r, a0, a1) {
// const k = Math.PI / 180;
// let s0 = -Math.sin(a0 * k) * r;
// let c0 = Math.cos(a0 * k) * r;
// let s1 = -Math.sin(a1 * k) * r;
// let c1 = Math.cos(a1 * k) * r;
// var aa = a1 - a0 > 180 ? 1 : 0;
// // var p = new TimalSvg.Data.SvgPath(string.Format("M0 0 L{0} 0 A {0} {0} 0 {3} 0 {1} {2} z", FN(r), ca, sa, aa));
// // p.Transform = string.Format("rotate({0})", FN(ang / 2));
// return `<path d="M0 0 L${c0} ${s0} A ${r} ${r} 0 ${aa} 0 ${c1} ${s1} z" stroke-width="3" stroke="#f00" fill="#0f0"/>`;
// },
svg(){
return new SvgNode('svg', {
version: "1.1",
xmlns: "http://www.w3.org/2000/svg"
// viewBox: "0 0 2000 2000"
})
},
group(items){
return new SvgNode("g", null, items)
},
circle(r) {
return new SvgNode("circle", {r})
},
sector(r, a0, a1) {
const k = Math.PI / 180;
let s0 = -Math.sin(a0 * k) * r;
let c0 = Math.cos(a0 * k) * r;
let s1 = -Math.sin(a1 * k) * r;
let c1 = Math.cos(a1 * k) * r;
var aa = a1 - a0 > 180 ? 1 : 0;
// var p = new TimalSvg.Data.SvgPath(string.Format("M0 0 L{0} 0 A {0} {0} 0 {3} 0 {1} {2} z", FN(r), ca, sa, aa));
// p.Transform = string.Format("rotate({0})", FN(ang / 2));
return new SvgNode("path", { d: `M0 0 L${c0} ${s0} A ${r} ${r} 0 ${aa} 0 ${c1} ${s1} z` });
},
ring_sector(r0, r1, a0, a1) {
const k = Math.PI / 180;
let s0 = -Math.sin(a0 * k);
let c0 = Math.cos(a0 * k);
let s1 = -Math.sin(a1 * k);
let c1 = Math.cos(a1 * k);
var aa = a1 - a0 > 180 ? 1 : 0;
return new SvgNode("path", {
d: `M${c0 * r0} ${s0 * r0}
A ${r0} ${r0} 0 ${aa} 0 ${c1 * r0} ${s1 * r0}
L${c1 * r1} ${s1 * r1}
A ${r1} ${r1} 0 ${aa} 1 ${c0 * r1} ${s0 * r1} z`,
});
},
text(text) {
let node = new SvgNode("text");
node.items = [text];
node.set_attrs({x: 0, y: 0})
return node;
},
};