gpt4 book ai didi

javascript - 使用 RaphaelJS 翻转形状

转载 作者:行者123 更新时间:2023-11-30 10:40:25 25 4
gpt4 key购买 nike

我用 RaphelJS 创建了一个六边形,但我找不到关于如何翻转六边形的漂亮、简单的教程。

这是当前的六边形创建代码:

function polygon(x, y, size, sides, rotate) {
var self = this;

self.centrePoint = [x,y];
self.size = size;
self.sides = sides;
self.rotated = rotate;
self.sizeMultiplier = 50;

self.points = [];

for (i = 0; i < sides; i++) {
self.points.push([(x + (self.size * self.sizeMultiplier) * (rotate ? Math.sin(2 * 3.14159265 * i / sides) : Math.cos(2 * 3.14159265 * i / sides))), (y + (self.size * self.sizeMultiplier) * (rotate ? Math.cos(2 * 3.14159265 * i / sides) : Math.sin(2 * 3.14159265 * i / sides)))]);
}

self.svgString = 'M' + self.points.join(' ') + ' L Z';
}

$(document).ready(function() {
var paper = Raphael(0, 0, 450, 450);

var path1 = new polygon(100, 100, 2, 6, false);
var path2 = new polygon(205, 187, 1, 6, false);
var path3 = new polygon(100, 277, 2, 6, false);

var hex1 = paper.path(path1.svgString);
var hex2 = paper.path(path2.svgString);
var hex3 = paper.path(path3.svgString);

hex1.node.id = "hex1";
hex1.attr("fill", "#ccc");
hex1.attr("stroke", "#aceace");
});

最佳答案

您希望如何翻转六边形?如果你只想水平或垂直翻转,你可以使用 scale功能。文档是这样列出的:

Element.scale(sx, sy, [cx], [cy])

并且您可以插入负数 sx(水平翻转)或 sy(垂直翻转)。由于您希望六边形保持相同大小,因此请使用值 -1 :

hex1.scale(1,-1, 0, 0);

更新:显然 scale 函数已被弃用,因此您应该改用 transform 函数,并记得在之后调整平移比例尺(或围绕六边形中心的比例尺)。所以代码看起来像这样(有 500 毫秒的缓出效果):

hex1.animate({transform: "S-1,1"},500,'easeOut'); 

或者

hex1.transform("S-1,1")

没有动画效果。

关于javascript - 使用 RaphaelJS 翻转形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11324046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com