Форум программистов, компьютерный форум CyberForum.ru

Построить картинку (3 миллиона чисел) - C++

Восстановить пароль Регистрация
 
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
03.04.2014, 21:53     Построить картинку (3 миллиона чисел) #1
Имеется файл .txt в котором данные идут в таком виде и разделены горизонтальной табуляцией
C++
1
2
3
4
5
6
7
8
0   0   1.818835793
1   0   1.811158943
2   0   1.80227727
3   0   1.793396774
4   0   1.785482256
5   0   1.789870116
6   0   1.806560354
7   0   1.821080968
В первом столбце 1024 значения (от 0 до 1023), это значения по х, во втором столбце, значения по у, от 0 до 1024, где каждое число повторяется соответственно 1024 раза, 3 столбец значения (высоты). Требуется построить картинку по значениям с 3-его столбца, в зависимости от координат (x,y) в оттенках серого. Не могли бы Вы посоветовать в каком направлении копать насчет хотя бы создания матрицы и построчного запоминания такого количества чисел. С++ Builder. Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 21:53     Построить картинку (3 миллиона чисел)
Посмотрите здесь:

Вывести наибольшее простое число до миллиона C++
C++ Нужно построить генератор псевдослучайных чисел!
C++ Построить последовательность из 20 чисел, образованную цифрами пятеричного представления последовательности натуральных чисел
C++ Построить последовательность действительных чисел a1,..., an по правилу
C++ Построить из трех чисел минимальное число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.04.2014, 23:47     Построить картинку (3 миллиона чисел) #2
Цитата Сообщение от sergei123123 Посмотреть сообщение
В первом столбце 1024 значения (от 0 до 1023), это значения по х, во втором столбце, значения по у, от 0 до 1024, где каждое число повторяется соответственно 1024 раза, 3 столбец значения (высоты).
То есть, данные расположены так (номера строк в файле отсутствуют)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0          0      1.818835793
1          0      1.811158943
2          0      1.802277270
3          0      1.793396774
....       ...      ...
1023       0       1.793396775
0          1       1.818835793
1          1       1.811158943
2          1       1.802277270
3          1       1.793396774
....       ...      ...
1023        1       1.793396775
0           2       1.802277270
1           2       1.793396774
...         ...       ...
1023      1023      1.793396779
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
03.04.2014, 23:52     Построить картинку (3 миллиона чисел) #3
А какое тут количество чисел? Всего лишь 3M - это примерно матрица 1000x1000 (чуть больше, неважно - ерунда). Всего лишь осталось узнать размеры 'изображения' - можно просто максимальные значения x и y найти, а потом создаешь матрицу - и вперед. Другой вопрос, что ты с этим 'изображением' делать собрался.
Ну и желательно бы это все считать в динамическую память, чтоб по файлу не бегать - все ж быстрее потом будет.

Добавлено через 37 секунд
Пардон, там даже размер задан. Ну тогда пункт с их определением можно пропустить)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.04.2014, 23:57     Построить картинку (3 миллиона чисел) #4
Цитата Сообщение от alsav22 Посмотреть сообщение
То есть, данные расположены так
Тогда можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int N = 1024;
    double** arr = new double*[N];
    for (int i = 0; i < N; ++i)
        arr[i] = new double[N];
 
    ifstream fin("data.txt");
    if (!fin)
        cout << "Error!" << endl;
    else
    {
        int i, j;
        while (fin >> i >> j)
            fin >> arr[i][j];
        
        fin.close();
    }
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
04.04.2014, 01:06  [ТС]     Построить картинку (3 миллиона чисел) #5
Задача сводиться к тому что, строиться картинка, с нее берутся значения x,y начальные и х,у конечные. Потом вычитается плоскость наклона (устраняется градиент, как то так), и строится график распределения высот. я так понимаю надо будет обращаться к данным матрицы? Это данные с АСМ микроскопа ).

Добавлено через 4 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда можно так:
Спасибо, сейчас попробую.
Данные расположены вот так:
C++
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
0   0   1.818835793
1   0   1.811158943
2   0   1.80227727
3   0   1.793396774
4   0   1.785482256
5   0   1.789870116
6   0   1.806560354
7   0   1.821080968
 
0        0  1.818835793
1        0   1.811158943
2        0   1.80227727
3        0   1.793396774
4        0   1.785482256
5        0   1.789870116
...............................
1023   0   1.821080968
 
0        1   1.818835793
1        1   1.811158943
2        1   1.80227727
3        1   1.793396774
4        1   1.785482256
1023   1   1.789870116
..........................
1023   0  1.821080968
 
0        2   1.818835793
1        2   1.811158943
2        2   1.80227727
3        2   1.793396774
...............................
1023   2   1.789870116
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.04.2014, 01:26     Построить картинку (3 миллиона чисел) #6
Цитата Сообщение от sergei123123 Посмотреть сообщение
Данные расположены вот так:
Вы хоть смотрите, что пишите ниже. Там, непонятно что.
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
04.04.2014, 01:52  [ТС]     Построить картинку (3 миллиона чисел) #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы хоть смотрите, что пишите ниже. Там, непонятно что.
Да, извините, ошибся) вот так правильно.
C++
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
0        0   1.818835793
1        0   1.811158943
2        0   1.80227727
3        0   1.793396774
4        0   1.785482256
5        0   1.789870116
~~~~~~~~~~~~~~
1023   0   1.821080968
 
 
0        1   1.818835793
1        1   1.811158943
2        1   1.80227727
3        1   1.793396774
4        1   1.785482256
5        1   1.789870116
~~~~~~~~~~~~~~
1023    1   1.821080968
 
~~~~~~~~~~~~~~~~
 
0        1023   1.818835793
1        1023   1.811158943
2        1023   1.80227727
3        1023   1.793396774
4        1023   1.785482256
5        1023   1.789870116
~~~~~~~~~~~~~~~~
1023   1023   1.821080968
Добавлено через 14 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Сообщение от alsav22
То есть, данные расположены так
Тогда можно так:
Не работает, почему то ругается на Undefined symbol 'ifstream'.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.04.2014, 02:15     Построить картинку (3 миллиона чисел) #8
Цитата Сообщение от sergei123123 Посмотреть сообщение
Не работает, почему то ругается на Undefined symbol 'ifstream'.
Это называется: не компилируется. Это же кусок кода. Нужные инклуды сделайте.
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
04.04.2014, 02:22  [ТС]     Построить картинку (3 миллиона чисел) #9
всё, понял)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.04.2014, 02:27     Построить картинку (3 миллиона чисел) #10
Цитата Сообщение от sergei123123 Посмотреть сообщение
Только как я понял я не смогу достать значения 3 столбца оттуда, да?
Оттуда - откуда? Из файла? Из массива?

Добавлено через 2 минуты
Цитата Сообщение от sergei123123 Посмотреть сообщение
всё, понял)
Значение j - это номер столбца.
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
04.04.2014, 02:57  [ТС]     Построить картинку (3 миллиона чисел) #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Оттуда - откуда? Из файла? Из массива?
Я про массив подумал, когда вводить уравнение плоскости начал, потом достал, я не очень разбираюсь в программировании).
А вот такой вопрос еще, если не затруднит). При переводе в оттенки серого значений из массива, смогу ли я воспользоваться Canvas, для прорисовки попиксельно, то есть ссылаться на полученные значения цвета в RGB?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.04.2014, 03:32     Построить картинку (3 миллиона чисел) #12
Это нужно в ветке по Builder спрашивать: http://www.cyberforum.ru/cpp-builder/
Это уже не С++.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2014, 04:06     Построить картинку (3 миллиона чисел)
Еще ссылки по теме:

C++ Построить односвязный список из входной последовательности чисел
Определить количество чисел, имеющих ровно пять делителей, среди первого миллиона натуральных чисел C++
C++ Построить гистограмму некоего набора натуральных чисел

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sergei123123
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 9
04.04.2014, 04:06  [ТС]     Построить картинку (3 миллиона чисел) #13
Спасибо.
Yandex
Объявления
04.04.2014, 04:06     Построить картинку (3 миллиона чисел)
Ответ Создать тему
Опции темы

Текущее время: 07:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru