![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Пытаюсь вывести битмап таким образом: 
		
	
		
		
		
		
		
	
		
		
	
	
	![]() но уже совсем запутался с какого бока лучше подойти. Подскажите, какие у кого есть идеи.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 У тебя же цвета чередуются. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цвета только показывают последовательность вывода. Грубо говоря, "рубим"  картинку на квадратики, скажем 32х32, и выводим диагональными линиями. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Обход какой:  
		
	
		
		
		
		
			
		
		
		
		
		
			диагональ 1: i = 0; j = 0; диагональ 2: i = 1; j = 0;| i = 0; j = 1; диагональ 3: i = 2; j = 0;| i = 1; j = 1;| i = 0; j = 2; диагональ 4: i = 3; j = 0;| i = 2; j = 1;| i = 1; j = 2;| i = 0; j = 3; Т.е. уменьшается номер картинки "по длине" и одновременно увеличивается "по высоте". Вот и проходим таким образом, вырезаем нужные кусочки изображения и рисуем. Так до конца ширины. Потом идем по высоте, I ставится равным ширине и уменьшается, J увеличивается. Первая часть так: Код: 
	a:=0; while a<w do begin j:=0; for i:=a downto 0 do begin // выводим кусок картинки inc(j); end; inc(a); end; Со второй, думаю, разберетесь =) Последний раз редактировалось Bargest, 19.05.2011 в 01:49.  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Спасибо, всё получилось. С учётом того, что функция BitBlt дуракоустойчива, нет смысла что-либо добавлять ещё к приведённому примеру, меняем только строку 
		
	
		
		
		
		
		
	
		
		
	
	
	while a<w на while a<w+h.  |