powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Нахождение координат
9 сообщений из 9, страница 1 из 1
Нахождение координат
    #38261263
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Не могу сообразить как найти ширину и высоту видимого участка зумированного изображения. Точку (x,y) определил, теперь никак не могу понять как определить размеры отрисовываемой области. Помогите пожалуйста! Заранее ОГРОМНОЕ спасибо!

Код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
............................
       canvas.drawBitmap(firstBitmap,matrix,mPaint);//Рисуем видимую область
............................
............................

       public boolean onTouch(View v, MotionEvent event) {
		PanZoomWithTouch(event);
        return true;
	}

	
	void PanZoomWithTouch(MotionEvent event) {
		switch (event.getAction() & MotionEvent.ACTION_MASK) {
		case MotionEvent.ACTION_DOWN:
			savedMatrix.set(matrix);
			start.set(event.getX(), event.getY());
			mode = PAN;
			break;
		case MotionEvent.ACTION_POINTER_DOWN:
			oldDist = spacing(event);
			if (oldDist > 10f) {
				savedMatrix.set(matrix);
				midPoint(mid, event); 
				mode = ZOOM;
			}
			break;
		case MotionEvent.ACTION_UP:
		case MotionEvent.ACTION_POINTER_UP: 
			mode = NONE;
			break;
		case MotionEvent.ACTION_MOVE: 
			if (mode == PAN) {
				// ...
				matrix.set(savedMatrix);
				matrix.postTranslate(event.getX() - start.x, event.getY()- start.y);
				logImageViewMatrixInfos(matrix,firstBitmap);
				
			} else if (mode == ZOOM) { 
				float newDist = spacing(event);
				if (newDist > 10f) {
					matrix.set(savedMatrix);
					float scale = newDist / oldDist;
					matrix.postScale(scale, scale, mid.x, mid.y);
					logImageViewMatrixInfos(matrix,firstBitmap);
				}
			}
			break;
		}
	}

	/** Determine the space between the first two fingers */
	private float spacing(MotionEvent event) {
		// ...
		float x = event.getX(0) - event.getX(1);
		float y = event.getY(0) - event.getY(1);
		return FloatMath.sqrt(x * x + y * y);
	}

	/** Calculate the mid point of the first two fingers */
	private void midPoint(PointF point, MotionEvent event) {
		// ...
		float x = event.getX(0) + event.getX(1);
		float y = event.getY(0) + event.getY(1);
		point.set(x / 2, y / 2);
	}
       
       public void logImageViewMatrixInfos(Matrix matrix, Bitmap imageView) {
           float[] values = new float[9];
           matrix.getValues(values);
           float globalX = (int) values[2];
           float globalY = (int) values[5];
           float width = (values[0]* imageView.getWidth());//Новая ширина всего изображения
           float height =  (values[4] * imageView.getHeight());Новая высота всего изображения

           float _x=0;
           float _y=0;

 
           if(globalX<0)
           {
        	   _x=(globalX*-1)*values[0];//Точка X
           }

           if(globalY<0)
           {
        	   _y=(globalY*-1)*values[0];//Точка Y
           }
    }

...
Рейтинг: 0 / 0
Нахождение координат
    #38261516
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,
ты бы картинку нарисовал.
В винде есть в API преобразователь координат Локальные-Глобальные
...
Рейтинг: 0 / 0
Нахождение координат
    #38261566
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Вообщем мне нужно знать размер участка вот изображения которое я сейчас вижу при зуме изображения. Помогите пожалуйста. Весь день сижу уже над этой "математикой".
...
Рейтинг: 0 / 0
Нахождение координат
    #38261568
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще может быть так:
...
Рейтинг: 0 / 0
Нахождение координат
    #38261571
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:
...
Рейтинг: 0 / 0
Нахождение координат
    #38261598
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Окно.ClientRect
Canvas.Ширина....Высота
Bitmap.Ширина....Высота

Если зуммируется окно, то в событии самого окна при зумме на каждый пиксель уже будет приходить новая ширина и высота
...
Рейтинг: 0 / 0
Нахождение координат
    #38261624
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Зумируется изображение. Т.е я всегда могу получить новый размер изображения и смещение x,y этого изображения относительно окна в котором оно отрисовывается. Вот я и не могу понять как мне размер видимого через это окно участка узнать?
...
Рейтинг: 0 / 0
Нахождение координат
    #38261672
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,
я в терминах Java не силён.
- нет слова "изображения". Есть класс А, В, С, Bitmap.
Если ты делаешь с исп-ием библиотек, то ресайзится окно, а картинка битмап там со свойством - заполнить.
Если всё руками, то.....на канву десктопа просто впечатываешь рисунок? А ресайзишь руками на MouseMove десктопа?
...
Рейтинг: 0 / 0
Нахождение координат
    #38261735
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123GorloPavel,
я в терминах Java не силён.
- нет слова "изображения". Есть класс А, В, С, Bitmap.
Если ты делаешь с исп-ием библиотек, то ресайзится окно, а картинка битмап там со свойством - заполнить.
Если всё руками, то.....на канву десктопа просто впечатываешь рисунок? А ресайзишь руками на MouseMove десктопа?

К сожалению я не понял :(

p.s: Это Android приложение.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Нахождение координат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]