Как быстро нарисовать растр из матрицы?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Как быстро нарисовать растр из матрицы?

Сообщение SGO » 08.01.2007 (Пн) 13:12

for x=1 to 200
for y=1 to 200
pset (x,y), m(x,y)
next y,x

Эта процедура длится около секунды, что очень долго, посоветуйте плз как это сделать максимально быстро (не дольше ,02 секунды)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2007 (Пн) 13:18

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Сообщение SGO » 08.01.2007 (Пн) 14:15

В поиске я ничего не нашёл

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2007 (Пн) 14:24

Тогда при второй попытке стоит задействовать мозг и обратить внимание на текст, представляющий ссылку...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Сообщение SGO » 08.01.2007 (Пн) 15:28

Ну и куда эти ссылки? обе http://bbs.vbstreets.ru/search.php, мне это ничего не даёт

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2007 (Пн) 15:30

GSerg писал(а):Тогда при второй попытке стоит задействовать мозг и обратить внимание на текст, представляющий ссылку...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 08.01.2007 (Пн) 20:24

GSerg "тонко намекает" что нужно название ссылки без пробелов ввести в поле на той странице, куда ведут эти ссылки, иными словами он рекомендует использовать эти функции, а как использовать - предлагает найти в поиске... верно ли перевел, уважаемый GSerg?
...http://bbs.vbstreets.ru/viewtopic.php?t=29791&highlight=setdibits
http://bbs.vbstreets.ru/viewtopic.php?t=26505&highlight=setdibits ....
И как выяснилось - в поле автор можно ввести GSerg, который собственно и не дает почему то ссылки на свою работу сразу, а отрпавляет в этот поиск
кроче не все так гладко, как хотелось бы...
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 12.01.2007 (Пт) 3:25

Код: Выделить всё
Private Const DIB_RGB_COLORS = 0
Private Type BITMAPINFOHEADER
        biSize As Long
        biWidth As Long
        biHeight As Long
        biPlanes As Integer
        biBitCount As Integer
        biCompression As Long
        biSizeImage As Long
        biXPelsPerMeter As Long
        biYPelsPerMeter As Long
        biClrUsed As Long
        biClrImportant As Long
End Type
Private Type RGBQUAD
        rgbBlue As Byte
        rgbGreen As Byte
        rgbRed As Byte
        rgbReserved As Byte
End Type
Private Type BITMAPINFO
        bmiHeader As BITMAPINFOHEADER
        bmiColors As RGBQUAD
End Type
Private Type RGB_Col
        B As Byte
        G As Byte
        R As Byte
End Type
Private Declare Function SetDIBitsToDevice Lib "gdi32" _
            (ByVal hdc As Long, _
            ByVal x As Long, _
            ByVal y As Long, _
            ByVal dx As Long, _
            ByVal dy As Long, _
            ByVal SrcX As Long, _
            ByVal SrcY As Long, _
            ByVal Scan As Long, _
            ByVal NumScans As Long, _
            Bits As Any, _
            BitsInfo As BITMAPINFO, _
            ByVal wUsage As Long) As Long
Dim R As Integer
Private Sub Form_Load()
Dim bi24BitInfo As BITMAPINFO, bBytes() As RGB_Col
With bi24BitInfo.bmiHeader
     .biBitCount = 24
     .biCompression = BI_RGB
     .biPlanes = 1
     .biSize = Len(bi24BitInfo.bmiHeader)
     .biWidth = 200
     .biHeight = 200
End With
ReDim bBytes(1 To bi24BitInfo.bmiHeader.biWidth, _
       1 To bi24BitInfo.bmiHeader.biHeight) As RGB_Col
For x = 1 To bi24BitInfo.bmiHeader.biWidth
  For y = 1 To bi24BitInfo.bmiHeader.biHeight
   bBytes(x, y).R = x
   bBytes(x, y).G = (x + y) \ 2
   bBytes(x, y).B = y
  Next
Next
Me.Show
Do Until R <> 0
SetDIBitsToDevice Me.hdc, 0, 0, bi24BitInfo.bmiHeader.biWidth, _
                   bi24BitInfo.bmiHeader.biHeight, 0, _
                   0, 0, bi24BitInfo.bmiHeader.biHeight, _
                   bBytes(1, 1), bi24BitInfo, DIB_RGB_COLORS
DoEvents
Loop
End Sub

~3500 fps
С=[::::::::::> ™ e398wallpapers.narod.ru

SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Сообщение SGO » 14.01.2007 (Вс) 8:06

|( () ( T |/| |([/b], спасибо большое, хоть кто-то помог просто так, не спрашивая кучу вопросов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 104

    TopList