Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何查找鼠标单击是否在wf面板中渲染的图像上?_C#_Image_Rotation_Panel_System.drawing - Fatal编程技术网

C# 如何查找鼠标单击是否在wf面板中渲染的图像上?

C# 如何查找鼠标单击是否在wf面板中渲染的图像上?,c#,image,rotation,panel,system.drawing,C#,Image,Rotation,Panel,System.drawing,首先让我说,我喜欢这个网站,经常在我发帖之前找到我问题的答案。现在我有一个问题,我似乎找不到答案。我还要提到,我对编程有点陌生,只做了几个月 这是怎么回事 我有一个带有system.drawing图形的面板附在上面,这样我就可以渲染图片了 有了这些我渲染到面板上的图片,我希望能够移动它们,然后与它们交互并旋转它们。有点像拼图游戏 我可以获得要渲染的图像,但需要一种方法来判断我的鼠标是否位于上次在该位置渲染的图片上。由于一个图像可能会渲染另一个图像的顶部,因此我希望获得顶部/最后渲染的图像 目前,

首先让我说,我喜欢这个网站,经常在我发帖之前找到我问题的答案。现在我有一个问题,我似乎找不到答案。我还要提到,我对编程有点陌生,只做了几个月

这是怎么回事

我有一个带有system.drawing图形的面板附在上面,这样我就可以渲染图片了

有了这些我渲染到面板上的图片,我希望能够移动它们,然后与它们交互并旋转它们。有点像拼图游戏

我可以获得要渲染的图像,但需要一种方法来判断我的鼠标是否位于上次在该位置渲染的图片上。由于一个图像可能会渲染另一个图像的顶部,因此我希望获得顶部/最后渲染的图像

目前,我有一个列表中的图像被渲染,我有一些自己的想法

  • 点击鼠标,我从上到下扫描所有图像列表,找到一个当前正在该点渲染的图像,这就是我的图像

  • 从上到下重新渲染屏幕,一旦像素改变,鼠标所在的位置就是我的图像

  • 为每个像素指定一个图像值,在渲染图像时,将为其上的像素指定该图像,并且鼠标可以拖动该图像

  • 任何帮助或反馈都将不胜感激


    谢谢。

    您使用的方法可能在很大程度上取决于您的应用程序。在不知道你想做什么的情况下,解决方案3似乎是最好的

    在选项3中,大多数工作是在添加每个图像时进行的(即,将其值指定给它覆盖的像素)。其他选项可能在添加图像时计算成本较低,但每次单击鼠标时计算成本较高。假设这适合您的应用程序(如果它像您所说的那样类似于拼图,那么它很可能适合您的应用程序),我会选择类似的东西

    它还假设图像是矩形,可以根据角点添加值,而不是必须手动计算图像中所有点的任意形状。对于任意形状的物体,哪种方法更快将更难计算出来


    总之,您最好决定更频繁地执行哪些操作(添加图像或单击鼠标),然后在另一个操作上执行该操作。

    您指的图像是一个pictureBox?