将图像的特定点放在另一个c#的特定点上
Placing specific point of image on specific point of another c#
我有一张坐标为 x1,y1
的图像。让我们说 (300,500)
。我想在那里放置一张 50x50 的图像,但不是该图像的左上角,而是较小图像的 (x2,y2)
。 (例如 (20,30)
)
像这样。我希望两个点在同一个地方
我试过类似的方法,但这会使我的小图像低于期望值。
bigImage.DrawImage(smallImage, bigImage.x1, bigImage.y1,
new Rectangle(smallImage.x2, smallImage.y2, smallImage.Height, smallImage.Width),
GraphicsUnit.Pixel);
有办法吗?
编辑:
刚刚意识到我的解决方案根本不起作用,因为它裁剪图像而不是将其放置在指定点上。
假设您有一个位于 (image1.x, image1.y)
的 image1
。你有 image2
将被放置在 (image2.x, image2.y)
.
此外,image1
中还有一个目标位置。此目标位置的坐标 (image1.target.x, image1.target.y)
在 image1
内。让我们将这些坐标转换为原点……
在 image1
中,我们使用平移坐标系。它被 (image1.x, image1.y)
偏移。我们需要添加该偏移量。因此,image1
中目标相对原点的位置为(image1.x + image1.target.x, image1.y + image1.target.y)
.
同样,image2
中也有一个目标位置。此目标位置的坐标 (image2.target.x, image2.target.y)
在 image2
内。也就是说目标在image2
相对原点的位置是(image2.x + image2.target.x, image2.y + image2.target.y)
.
我们希望这两个目标相对于原点位于同一位置:
(image1.x + image1.target.x, image1.y + image1.target.y)
=
(image2.x + image2.target.x, image2.y + image2.target.y)
让我按组件分解:
image1.x + image1.target.x = image2.x + image2.target.x
image1.y + image1.target.y = image2.y + image2.target.y
我们想通过更改 image2
的位置来存档它。即通过改变 image2.x
和 image2.y
。让我们求解这些变量的方程式:
image2.x = image1.x + image1.target.x - image2.target.x
image2.y = image1.y + image1.target.y - image2.target.y
还有你必须放置第二张图片的地方。
希望一张图片能让这个更清楚:
我有一张坐标为 x1,y1
的图像。让我们说 (300,500)
。我想在那里放置一张 50x50 的图像,但不是该图像的左上角,而是较小图像的 (x2,y2)
。 (例如 (20,30)
)
像这样。我希望两个点在同一个地方
我试过类似的方法,但这会使我的小图像低于期望值。
bigImage.DrawImage(smallImage, bigImage.x1, bigImage.y1,
new Rectangle(smallImage.x2, smallImage.y2, smallImage.Height, smallImage.Width),
GraphicsUnit.Pixel);
有办法吗?
编辑: 刚刚意识到我的解决方案根本不起作用,因为它裁剪图像而不是将其放置在指定点上。
假设您有一个位于 (image1.x, image1.y)
的 image1
。你有 image2
将被放置在 (image2.x, image2.y)
.
此外,image1
中还有一个目标位置。此目标位置的坐标 (image1.target.x, image1.target.y)
在 image1
内。让我们将这些坐标转换为原点……
在 image1
中,我们使用平移坐标系。它被 (image1.x, image1.y)
偏移。我们需要添加该偏移量。因此,image1
中目标相对原点的位置为(image1.x + image1.target.x, image1.y + image1.target.y)
.
同样,image2
中也有一个目标位置。此目标位置的坐标 (image2.target.x, image2.target.y)
在 image2
内。也就是说目标在image2
相对原点的位置是(image2.x + image2.target.x, image2.y + image2.target.y)
.
我们希望这两个目标相对于原点位于同一位置:
(image1.x + image1.target.x, image1.y + image1.target.y)
=
(image2.x + image2.target.x, image2.y + image2.target.y)
让我按组件分解:
image1.x + image1.target.x = image2.x + image2.target.x
image1.y + image1.target.y = image2.y + image2.target.y
我们想通过更改 image2
的位置来存档它。即通过改变 image2.x
和 image2.y
。让我们求解这些变量的方程式:
image2.x = image1.x + image1.target.x - image2.target.x
image2.y = image1.y + image1.target.y - image2.target.y
还有你必须放置第二张图片的地方。
希望一张图片能让这个更清楚: