我正在使用图像库/imglib中的copyRectify。这个库不支持路径。但是,我可以通过指定topleft、topright、bottomleft、bottomright的点来复制图像的一部分。
例如:
imagePiece = imglib.copyRectify(imagSrc,
topLeft: imglib.Point(0,0),
topRight: imglib.Point(10,0),
bottomLeft: imglib.Point(0,100),
bottomRight: imglib.Point(10,100),
)
我想通过Matrix4旋转或平移来操作这些点值。我可以将这些点值集合放入什么结构中,以便能够应用. transform和. translate等Matrix4操作,然后将新值应用到copyRectify?我不想手动更新每个点,我认为有一些更干净的方法来完成此操作,如以下伪代码:
// put the point values into a theoretical list that Matrix4 can work with
pointlist = [0,0, 10,0, 0,100, 10,100];
// make new matrix
matrix = Matrix(1,1,1,1);
// rotate the matrix
matrix.rotateDegrees(45);
// apply the matrix values to the points in the list and return an updated list
rotatedList = matrix.apply(pointlist);
// used the new rotated list values in copyRectify
...
一旦我能把这些点放到一个合适的结构中,这个结构可以被矩阵操纵,那么剩下的就都到位了。
1条答案
按热度按时间beq87vna1#
也许你可以用这个作为起点。我使用了vector_math库中的Vector和Matrix4。我为矩形中的每个点使用了4个矢量,并对每个点应用了Matrix4转换矩阵。我不确定这是否正确,但它确实添加了旋转,但不是我预期的方式。它旋转了整个复制的图像,而不仅仅是旋转选区。