|
Вопрос # 4 291/ вопрос открыт / |
|
Здравствуйте, эксперты!
Возможно в прошлый раз задал вопрос не совсем корректно. исправляюсь.
Пользователем задана матрица. хз сколько задаст строк, хз сколько столбцов. нужно построить 2 диаграммы
пример вот такой.
http://s54.radikal.ru/i146/1006/c6/8e3ea9c7e627.jpg
сделанный в экселе. дана например вот такая матрица, необходимы две диаграммы. для линий А и линий В.
вот такие вот.
Как это реализовать?
 |
Вопрос задал: zloy_nub (статус: Посетитель)
Вопрос отправлен: 6 июня 2010, 20:42
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 20; последнее сообщение — 8 июня 2010, 21:12; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 7 июня 2010, 08:31 [#1]:
Могу сделать без TChart. Будет просто и красиво. Сколько пива ставишь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 7 июня 2010, 09:56 [#2]:
Цитата (zloy_nub):
Сколько нужно - поставлю.
Ящик осилишь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
7 июня 2010, 15:33: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Графика (2D и 3D) в приложениях модератором Ерёмин А.А.
|
min@y™ (статус: Доктор наук), 7 июня 2010, 17:58 [#3]:
Цитата (zloy_nub):
если это не элитное какое-нибудь пиво, то осилю.
Нет, не элитное, я простое рязанское Жигулёвское предпочитаю. Ладно, попробую написать.
Откуда ж вы такие берётесь? Как сессия, так у меня завал полнейший, хоть круглосуточно лабы пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
padonak (статус: Посетитель), 8 июня 2010, 01:59 [#4]:
Жутко извеняюсь, но на результат можно будет глянуть?
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 09:37 [#5]:
Завалили меня работой. Я уже начал писать класс-отрисовщик, а тут аврал.
Подождёшь несколько дней или сам напишешь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 11:45 [#6]:
Ну чего, мне продолжать или не надо? Я уже много написал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 14:53 [#7]:
Цитата (zloy_nub):
ну не получается, так не получается, что поделаешь.
Поздняк метаццо, 80% примерно сделал уже. Ещё пару часов, если не отвлекут.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 15:41 [#8]:
Могу прислать предварительный вариант.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 16:22 [#9]:
Цитата (zloy_nub):
было бы круто
Куда слать-то? На деревню дедушке Константиру Макарычу?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 16:47 [#10]:
Отправил, смотри.
Могу продать черновые исходники. Дёшево, но придётся тебе их обрабатывать напильником самому.
Могу доделать, это займёт время и будет дороже.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 17:04 [#11]:
Цитата (zloy_nub):
тэк. теперь интересуют 2 вещи. сама цена и способ оплаты.
А ты какой вариант исходников выбираешь?
Черновой - 5 бутылок пива.
Доделанный - ящик (20 бутылок).
Выбирай 1-й вариант, а?
А то у меня тут завал, диплом за 5 тыщ пишу, сроки все вышли!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 17:16 [#12]:
Цитата (zloy_nub):
а может в более конвертируемой валюте?
Могу принять рубли на сим-карту.
Цитата (zloy_nub):
только у тебя статичная матрица и значения внутри неё хрен поменяешь, а еще графики друг на друга накладываются...
Это таблица статичная.
За отрисовку отвечает класс, которому подставляешь ЛЮБУЮ матрицу, ЛЮБОЙ размерности и Canvas, на котором рисовать. StringGrid там только для отладки самого класса. Вот его описалово:
unit uBarChart;
interface
uses
Classes, Types, SysUtils, Graphics, Math;
type
TMatrix = array of array of Integer;
//TColorVector = array of TColor;
TBarChart = class
private
// Поля свойств
FMatrix: TMatrix;
FCanvas: TCanvas;
FAxisColor: TColor;
// Внутренние поля
FMin: Integer;
FMax: Integer;
FXAxisTop: Integer;
FXAxisLen: Integer;
FSectionLen: Integer; // Длина секции в пикселях
FYAxisLeft: Integer;
FYScale: Double; // Масштаб (пикс. на единицу измерения)
FSectionFilling: Double; // Процент заполнение секции под прямоугольники (def.: 0.7 (70%))
// Дочерние объекты
FColors: TList;
// Функции доступа к свойствам
function GetRowCount: Integer;
procedure SetRowCount(const ANew: Integer);
function GetColCount: Integer;
procedure SetColCount(const ANew: Integer);
function GetCell(const i, j: Integer): Integer;
procedure SetCell(const i, j: Integer; const ANew: Integer);
function GetColor(const Index: Integer): TColor;
procedure SetColor(const Index: Integer; const ANew: TColor);
// Технологические функции
function GetMinMaxInfo: TPoint;
function IndexesInBounds(const i, j: Integer): Boolean;
procedure DrawYAxisValue(const ABounds: TRect; const Value: Integer);
procedure DrawXAxisValues(const ABounds: TRect);
procedure DrawAxis(const ABounds: TRect);
procedure DrawValueBar(const i, j: Integer);
public
constructor Create;
destructor Destroy; override;
// Методы
procedure Draw(const ABounds: TRect);
// Свойства
property Matrix: TMatrix read FMatrix write FMatrix;
property RowCount: Integer read GetRowCount write SetRowCount;
property ColCount: Integer read GetColCount write SetColCount;
property Cells[const i, j: Integer]: Integer read GetCell write SetCell;
property Colors[const Index: Integer]: TColor read GetColor write SetColor;
property Canvas: TCanvas read FCanvas write FCanvas;
property AxisColor: TColor read FAxisColor write FAxisColor;
end;
implementation
Это только предварительно. Там ещё много чего можно добавить.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 8 июня 2010, 17:33 [#13]:
Может вы это все в личке решать будете? кто кому сколько должен?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 17:47 [#14]:
Блин, оказывается я этот вопрос спутал с 4286, а там было что-то про TurboDelphi, в котором нету TChart. Почему-то у меня в голову врезалось это сообщение, и я думал, что оно твоё. Поэтому предложил сделать без TChart. Но, оказывается, можно использовать TChart, а целый рабочий день почти угрохал. Вот я туплю...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 17:55 [#15]:
Это я уже понял. Чо теперь делать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 18:23 [#16]:
Цитата (zloy_nub):
сделать в чарте - такая же муть длинная?
Нет, там гораздо меньше писанины.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 18:27 [#17]:
Пример я тебе уже пишу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 18:33 [#18]:
Мне надо отойти на часок, вернусь - доделаю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 21:02 [#19]:
Отправил новый пример.
Он тоже сырой, но и ты пойми меня правильно: у меня щас 4 проги одновременно в разработке. Времени нету, полный жоп. Если чо надо добавить - пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 июня 2010, 21:12 [#20]:
Цитата (zloy_nub):
Пример хорош, там как вижу по столбцам. По строкам думаю сам соображу...
По строкам - достаточно траспонировать матрицу. И всё.
Я потратил на тебя целый день, на сколько пива я могу рассчитывать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|