Java 直线上的反射像素

Java 直线上的反射像素,java,image,rgb,Java,Image,Rgb,其目的是“移动”(部分)图像正方形子区域(正方形(x,y))中的像素 我这样做是通过穿过正方形中的每一条水平线,计算出哪一条会被移动。以相反的方式移动它们 假设我的正方形中有一条水平的像素线(x,y) A…………B…………C 应用变换后,B到C之后的像素将变为黑色。C处的像素“移动”到A,B和P之间的像素从A到B线性移动和缩放 这意味着A到B像素是B到C的拉伸反射。但B处的像素保持不变 我的问题是算出A和C的位置,即正方形(x,y)的右手边和左手边 到目前为止,我有这个:大小是正方形长度或宽度的

其目的是“移动”(部分)图像正方形子区域(正方形(x,y))中的像素

我这样做是通过穿过正方形中的每一条水平线,计算出哪一条会被移动。以相反的方式移动它们

假设我的正方形中有一条水平的像素线(x,y)

A…………B…………C

应用变换后,B到C之后的像素将变为黑色。C处的像素“移动”到A,B和P之间的像素从A到B线性移动和缩放

这意味着A到B像素是B到C的拉伸反射。但B处的像素保持不变

我的问题是算出A和C的位置,即正方形(x,y)的右手边和左手边

到目前为止,我有这个:大小是正方形长度或宽度的一半

// check if square(x,y) lies within image
if ( (x<image.getWidth()) && (y<image.getHeight()) ){   
   if (( y<=0) && (y >= image.getHeight())){ //not sure whether these if's are right
      for (int i=0; i<x-size; i++) {// visiting each pixel in square(x,y) at coordinate (i,j) 
         for(int j=0; j< y-size; j++){ 
           // set values for A(left hand side), C(right hand side), B(x +n)
            int A= 
            int B= 
            int B= x+n;
//检查正方形(x,y)是否位于图像中

如果((x据我所知,在较大的图像中有一个小的正方形区域,但是你在整个图像中运行“for循环”,而不是正方形(我假设它是通过一些键盘命令或鼠标移动在屏幕上移动)


在鼠标移动的情况下,鼠标将位于正方形的中心位置(x,y)。在正方形中的每一个水平像素行中,a将是(x-(square.width/2)),B将是(x+n),C将是(x+(square.width/2).

您的问题相当令人困惑,仅供参考。我甚至不太清楚如果A和C是端点,您到底想做什么,难道一个不在
0
而另一个在
image.getWidth()吗-1
?还是我误解了什么?@rabbitguy以水平方向反射像素line@911DidBush不一定,因为我可以将光标移动到图像上的任何位置是的,但我应该将for循环通过I处的正方形中的每个xy,jif如果你的正方形是100乘100,并且你的反射镜在中心,那么你将是循环通过每一条水平线,将像素从C-B“移动”到A-B,如果B(反射线)可以向左或向右移动,你可能需要一个方程。我想这就是我试图计算的线性方程,我假设你也在CO2016;)试着在prei=mi+k方程中解m和k,这是我给你的唯一提示