![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
pic1.draw (pic3, new Matrix (1, 0, 0, 1, x, y), null, BlendMode.DARKEN);
pic2.draw (pic1, null, null, BlendMode.NORMAL, new Rectangle (x, y, w, h), false); размер pic1 500х500 а pic3 и pic2 100x100 w=100 h=100 0<=x,y<500 Если x и y < 100, то в pic2 рисуется кусок из pic1 если же x>100 или y>100 - то почему то не рисуется. Почему такое может быть? Последний раз редактировалось mikleb; 28.03.2008 в 03:35. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
Вообщем у меня есть много вопросов связанные с draw.
1)Matrix - это матрица замены координат в какой системе? у битмапа на котором рисуем или у битмапа который рисуем или еще что. Еще колор трасформэйшон это применяется к результату или к битмапу на котором рисуем , а потом уже происходит наложение. В хелпе про это совсем не ясно написано. И самое главное как через draw на маленьком битмапе нарисовать кусок из большого битмапа. |
|
|||||
|
Modus ponens
|
pic1.draw (pic3, new Matrix (1, 0, 0, 1, x, y), null, BlendMode.DARKEN);
Вот тут матрица применяется к клипу до того как его воткнуть в битмап. Т.е. если то же самое записать словами: Взять клип, высоту и ширину не менять, переместить на х вправо и на у вниз относительно х0у0 битмапа, после чего обрезать результат по краям исходного битмапа. Т.е. получилось, что вы взяли клип, но трансформировали его так, что у него не оказалось общих точек с битмапом, в который собирались его рисовать.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
To wvxvw
На pic1 все рисуется куда надо. А вот в pic2 почему то нужный кусок pic1 не рисуется |
|
|||||
|
Modus ponens
|
Синий - незаполненные области pic1, темнозеленый - область занимаемая pic2. Т.е. что у вас получилось: Вы взяли картинку и воткнули ее в битмапдату со сдвигом по 100 пикселов вниз и вправо. Соответсвенно, когда попытались наложить - картинка оказалась вне области pic2. Проще - скажите чего нужно сделать - попробую сделать пример, а то так до посинения объяснять можно =)
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 28.03.2008 в 16:48. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
To wvxvw
Но ведь в pic2 в месте куда пишется матрица написано null значит должно рисоваться со сдвигом 0. А кусок из pic1 который нужно нарисовать в pic2 задает Rectangle (x, y, w, h) т.е. как раз то место в pic1 где нарисован pic3 |
|
|||||
|
Modus ponens
|
Ну так оно и рисуется со сдвигом 0, только там прозрачные пиксели... заполненые пиксели начинаются за пределами pic2...
Проще - скажите чего нужно сделать - попробую сделать пример, а то так до посинения объяснять можно =)
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
To wvxvw
Мне не нужно чего то сделать, а нужно понять почему не рисует (т.е что именно делает draw). То есть draw рисует весь сорс битмап и пропускает нарисовку пикселей вне клипректа. Но почему тогда следущий код тоже не рисует: pic1.draw (pic3, new Matrix (1, 0, 0, 1, x, y), null, BlendMode.DARKEN); pic2.draw (pic1,new Matrix(1,0,0,1,-x,-y), null, BlendMode.NORMAL, new Rectangle (x, y, w, h), false); |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 269
|
Если не нужно чего-то сделать, а нужно понять, тем более приведи полный исходник, тогда помогут. Потому что объяснить, как выяснилось, ты нормально не можешь.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|