如何使用Aurelia创建基于SVG的图形
我在这里创建了一些Angular+SVG图形示例: 我在哪里可以找到一个代码示例,说明如何将这些代码示例转换为Aurelia 下面是一个示例HTML页面:如何使用Aurelia创建基于SVG的图形,aurelia,Aurelia,我在这里创建了一些Angular+SVG图形示例: 我在哪里可以找到一个代码示例,说明如何将这些代码示例转换为Aurelia 下面是一个示例HTML页面: <!DOCTYPE html> <html ng-app="App"> <head> <meta chartset="utf-8"> <title>SVG and Angular</title> <script src="http://cdn
<!DOCTYPE html>
<html ng-app="App">
<head>
<meta chartset="utf-8">
<title>SVG and Angular</title>
<script
src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0/angular.js">
</script>
<script src="ArchOvals1.js"></script>
</head>
<body>
<div ng-controller="MyCtrl">
<svg width="800" height="500" ng-init="elems = getElems()">
<ellipse ng-repeat="p in elems"
ng-attr-cx="{{::p.cx}}" ng-attr-cy="{{::p.cy}}"
ng-attr-rx="{{::p.rx}}" ng-attr-ry="{{::p.ry}}"
ng-attr-fill="{{::p.fill}}">
</ellipse>
</svg>
</div>
</body>
</html>
window.App = angular.module('App', []);
App.controller('MyCtrl', function($scope){
$scope.getElems = function(){
var majorAxis=40, minorAxis=80, maxCount=200, elems=[];
var colors = ["#f00", "#0f0", "#00f"];
var basePointX = 250, basePointY = 250;
var currentX = 0, currentY = 0;
var offsetX = 0, offsetY = 0;
var radius = 0, spiralCount = 4;
var Constant = 0.25, angle = 0;
var deltaAngle = 1, maxAngle = 721;
var offsetX=0, offsetY=0, index=0;
var majorAxis=40, minorAxis=60, elems=[], color="";
var colors=["#FF0000","#0000FF","#FF00FF","#FF0000"];
for(angle=0; angle<maxAngle; angle+=deltaAngle) {
radius = Constant*angle;
offsetX = radius*Math.cos(angle*Math.PI/180);
offsetY = radius*Math.sin(angle*Math.PI/180);
currentX = basePointX+offsetX;
currentY = basePointY-offsetY;
// calculate index into the colors array
index = Math.floor(angle/deltaAngle);
// append an (x,y) pair of values that
// represent the upper-left vertex
elems.push({cx:currentX, cy:currentY,
rx:majorAxis, ry:minorAxis,
fill:colors[index%2]});
}
return elems;
};
});
SVG与角度
HTML页面的示例JS文件如下:
<!DOCTYPE html>
<html ng-app="App">
<head>
<meta chartset="utf-8">
<title>SVG and Angular</title>
<script
src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0/angular.js">
</script>
<script src="ArchOvals1.js"></script>
</head>
<body>
<div ng-controller="MyCtrl">
<svg width="800" height="500" ng-init="elems = getElems()">
<ellipse ng-repeat="p in elems"
ng-attr-cx="{{::p.cx}}" ng-attr-cy="{{::p.cy}}"
ng-attr-rx="{{::p.rx}}" ng-attr-ry="{{::p.ry}}"
ng-attr-fill="{{::p.fill}}">
</ellipse>
</svg>
</div>
</body>
</html>
window.App = angular.module('App', []);
App.controller('MyCtrl', function($scope){
$scope.getElems = function(){
var majorAxis=40, minorAxis=80, maxCount=200, elems=[];
var colors = ["#f00", "#0f0", "#00f"];
var basePointX = 250, basePointY = 250;
var currentX = 0, currentY = 0;
var offsetX = 0, offsetY = 0;
var radius = 0, spiralCount = 4;
var Constant = 0.25, angle = 0;
var deltaAngle = 1, maxAngle = 721;
var offsetX=0, offsetY=0, index=0;
var majorAxis=40, minorAxis=60, elems=[], color="";
var colors=["#FF0000","#0000FF","#FF00FF","#FF0000"];
for(angle=0; angle<maxAngle; angle+=deltaAngle) {
radius = Constant*angle;
offsetX = radius*Math.cos(angle*Math.PI/180);
offsetY = radius*Math.sin(angle*Math.PI/180);
currentX = basePointX+offsetX;
currentY = basePointY-offsetY;
// calculate index into the colors array
index = Math.floor(angle/deltaAngle);
// append an (x,y) pair of values that
// represent the upper-left vertex
elems.push({cx:currentX, cy:currentY,
rx:majorAxis, ry:minorAxis,
fill:colors[index%2]});
}
return elems;
};
});
window.App=angular.module('App',[]);
应用程序控制器('MyCtrl',函数($scope){
$scope.getElems=function(){
变量majorAxis=40,minorAxis=80,maxCount=200,elems=[];
变量颜色=[“#f00”、“#0f0”、“#00f”];
var basePointX=250,basePointY=250;
var currentX=0,currentY=0;
var offsetX=0,offsetY=0;
变量半径=0,螺旋计数=4;
var常数=0.25,角度=0;
变量deltaAngle=1,maxAngle=721;
var offsetX=0,offsetY=0,index=0;
变量majorAxis=40,minorAxis=60,元素=[],颜色=”;
变量颜色=[“FF0000”、“0000FF”、“FF00FF”、“FF0000”];
for(angle=0;angle使用Aurelia绑定到SVG与绑定到任何其他HTML元素没有区别。我们目前有一个优秀的for绑定到IE中的style属性,包括对其他SVG属性的支持,但除此之外,它与绑定到输入标记或类似的东西没有区别
以下是svg代码(svg.html):
这是视图模型(svg.js)。注意,我刚刚复制了您的代码并将其设置为ES6:
export class SVG{
getElems() {
var majorAxis=40, minorAxis=80, maxCount=200, elems=[];
var colors = ["#f00", "#0f0", "#00f"];
var basePointX = 250, basePointY = 250;
var currentX = 0, currentY = 0;
var offsetX = 0, offsetY = 0;
var radius = 0, spiralCount = 4;
var Constant = 0.25, angle = 0;
var deltaAngle = 1, maxAngle = 721;
var offsetX=0, offsetY=0, index=0;
var majorAxis=40, minorAxis=60, elems=[], color="";
var colors=["#FF0000","#0000FF","#FF00FF","#FF0000"];
for(angle=0; angle<maxAngle; angle+=deltaAngle) {
radius = Constant*angle;
offsetX = radius*Math.cos(angle*Math.PI/180);
offsetY = radius*Math.sin(angle*Math.PI/180);
currentX = basePointX+offsetX;
currentY = basePointY-offsetY;
// calculate index into the colors array
index = Math.floor(angle/deltaAngle);
// append an (x,y) pair of values that
// represent the upper-left vertex
elems.push({cx:currentX, cy:currentY,
rx:majorAxis, ry:minorAxis,
fill:colors[index%2]});
}
return elems;
}
}
导出类SVG{
getElems(){
变量majorAxis=40,minorAxis=80,maxCount=200,elems=[];
变量颜色=[“#f00”、“#0f0”、“#00f”];
var basePointX=250,basePointY=250;
var currentX=0,currentY=0;
var offsetX=0,offsetY=0;
变量半径=0,螺旋计数=4;
var常数=0.25,角度=0;
变量deltaAngle=1,maxAngle=721;
var offsetX=0,offsetY=0,index=0;
变量majorAxis=40,minorAxis=60,元素=[],颜色=”;
变量颜色=[“FF0000”、“0000FF”、“FF00FF”、“FF0000”];
对于(角度=0;角度