Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130

Вывести картинку вместо рисования графика

17.12.2012, 02:03. Показов 2208. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне сказали чтоб после высчитывания цыкла выводила картинку "Image" а не график строило, подскажите как, и где там именно впесат ькод, так как написал и нисработало, там два цикла и надо чтоб пока выводилась одна и там же картинка, но прописана, в каждом цикле. вот код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include<math.h>
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
float f(float kx,float eps)
{
    float s=kx;
    float u=kx;
    int  n=0;
    float A,B;
    while(abs(u)>=eps)
    {
        u=-u*sqrt(2*kx)/(2*n+2)/(2*n+3);
        s=s+u;
        n++;
    }
    return s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
if(MessageBox(0,"Цель программы состоит в том, что бы определить собственные частоты колебаний балки с бесконечным числом степеней свободы с консольным закреплением.","Програма",MB_OK)==IDOK);
 {
 }}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
if(MessageBox(0,"Після запуску програми перед Вами з'явиться панель, у яку Вам необхідно внести дані для розрахунку. Для того, щоб внести значення Вам необхідно встановити курсор миші (або ж клавіша Tab) в потрібне порожнє поле після чого внести відповідні значення и натиснути кнопку <Розрахунок>","Програма",MB_OK)==IDOK);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
 Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Image1->Canvas->MoveTo(0-1000,cos(0)*30+(Image1->Height)/2);
     float kx=StrToFloat(Edit1->Text);
     float eps=StrToFloat(Edit2->Text);
     float w,w1,w2;
     float E=21000;
     float D=eps;
     float d=D/100;
     float m=kx/d;
     float J=3.14*d*d*d/64;
     float hkx=0.01;
     float s1;
     float s2;
     float kxs1;
     float kxs2;
     for(int i=0;i<2;i++)
     {
     s2=0;
     s1=f(kx,eps);
     m1:
     Image1->Canvas->LineTo(kx*30-1000+15,cos(kx)*30+(Image1->Height)/2);
     kx=kx+hkx;
     w=sqrt((3*E*J)/(kx*kx*m));
     s2=f(kx,eps);
     if(s1*s2>0)
        {
            s1=s2;
            goto m1;
        }
        if(i==0)
                kxs1=kx-hkx/2;
                 w1=kx/230-hkx/2;
     Image1->Canvas->Ellipse(kxs1*30-5-1000+190,cos(w1)+(Image1->Height)/2-5,kxs1*30+5-1000+190,cos(kxs1)+(Image1->Height)/2+5);
     TStringList *List = new TStringList;
     Label1->Caption="I собственная частота = "+FloatToStr(w1);
    float s3=f(kx,eps);
     m2:
     kx=kx+hkx;
     if(s1*s3>0)
     {
        s1=s3;
        goto m2;
     }
     if(i==0)
        kxs2=kx-hkx/2;
        w2=kx/230-hkx;
     Image1->Canvas->Ellipse(kxs2*30-5-1000+97,cos(kxs2)+(Image1->Height)/2-5,kxs2*30+5-1000+97,cos(kxs2)+(Image1->Height)/2+5);
     Label2->Caption="II собственная частота = "+FloatToStr(w2);
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender)
{
       Image1->Canvas->MoveTo((Image1->Width)/2,0);
      Image1->Canvas->LineTo((Image1->Width)/2,Image1->Height);
      Image1->Canvas->MoveTo(0,(Image1->Height)/2);
      Image1->Canvas->LineTo(Image1->Width,(Image1->Height)/2);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2012, 02:03
Ответы с готовыми решениями:

PictureBox. Вместо рисования шарика вставить свою картинку
Подскажите, как вместо рисования шарика вставить свою картинку? Приложение WindowsForm. private void pictureBox1_Paint(object sender,...

Как вместо символа вывести картинку?
Как можно вывести вместо символа вывести картинку? Задание такое: даны две литеры – латинская буква (от a до h) и цифра (от 1 до 8),...

DevExpress, как вместо True или False вывести картинку
Добрый день. Уважаемые гуру, кто знает или обладает примером, помогите пожалуйста разобраться сxGrid. Не могу понять как вместо chekbox...

20
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
17.12.2012, 16:51
Вообще нифига не понятно. Ладно слова, но ты хоть логику построения предложений не коверкай. И поподробнее, чего там не работает...
0
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
17.12.2012, 21:25  [ТС]
Ок, сори за то что не првильно объяснил. вот первый цыкл в коде:
C++
1
2
3
Image1->Canvas->Ellipse(kxs1*30-5-1000+190,cos(w1)+(Image1->Height)/2-5,kxs1*30+5-1000+190,cos(kxs1)+(Image1->Height)/2+5);
     TStringList *List = new TStringList;
     Label1->Caption="I собственная частота = "+FloatToStr(w1);
мне надо, чтобы в этом цыкле выводило рисунок, предположим какой нибуть там "image.jpg". А сейчас у меня программа просто рисует сама график. Мне надо заменить график этот, этим рисунком, чтоб не рисовало, а выводило. вот второй цыкл, надо прописать код в 1 и 2 цыкле.
C++
1
2
   Image1->Canvas->Ellipse(kxs2*30-5-1000+97,cos(kxs2)+(Image1->Height)/2-5,kxs2*30+5-1000+97,cos(kxs2)+(Image1->Height)/2+5);
     Label2->Caption="II собственная частота = "+FloatToStr(w2);
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
17.12.2012, 23:24
У Image есть св-во Picture видное через IDE, указываешь там какую картинку выводить, и картинка выводиться.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.12.2012, 00:13
А также у него есть замечательный метод LoadFromFile()...
0
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
18.12.2012, 01:07  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
А также у него есть замечательный метод LoadFromFile()...
вот через этот метод мне надо бы написать, только подскажи как там правильно, а то прописывал не заработало.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
18.12.2012, 02:23
вот и покажите, как прописывал
0
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
18.12.2012, 02:59  [ТС]
вот так делал:
C++
1
2
3
Image1->Canvas->Ellipse(kxs1*30-5-1000+190,cos(w1)+(Image1->Height)/2-5,kxs1*30+5-1000+190,cos(kxs1)+(Image1->Height)/2+5);
if(OpenPictureDialog1->Execute())
  Image1->Ficture->LoadFromFile(OpenPictureDialog1->Image);
так же пробывал так:
C++
1
2
3
4
Image1->Canvas->Ellipse(kxs1*30-5-1000+190,cos(w1)+(Image1->Height)/2-5,kxs1*30+5-1000+190,cos(kxs1)+(Image1->Height)/2+5);
TStringList *List = new TStringList;
AnsiString Name = "C:\\Image";
List -> LoadFromFile(Name);
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
18.12.2012, 03:44
Что это за набор символов?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.12.2012, 07:26
Это, коллега, бурная фантазия человека, никогда не видевшего справки.
C++
1
2
if( OpenPictureDialog1->Execute( ) )
  Image1->Picture->LoadFromFile( OpenPictureDialog1->FileName );
Вот подгрузка картинки по пути (путь к папке с программой)\pictures\image_number_10.bmp:
C++
1
2
int i = 10;
Image1->Picture->LoadFromFile( ExtractFilePath( Application->ExeName ) + "pictures\\image_number_" + IntToStr( i ) + ".bmp" );
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
18.12.2012, 07:35
А на кой рисовать на имедже элипс, а следующей строкой грузить в него картинку с диска? И причем тут TStringList?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
18.12.2012, 10:24
вот какой код был, такой и вставил
0
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
18.12.2012, 10:44  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Это, коллега, бурная фантазия человека, никогда не видевшего справки.
C++
1
2
if( OpenPictureDialog1->Execute( ) )
  Image1->Picture->LoadFromFile( OpenPictureDialog1->FileName );
Вот подгрузка картинки по пути (путь к папке с программой)\pictures\image_number_10.bmp:
C++
1
2
int i = 10;
Image1->Picture->LoadFromFile( ExtractFilePath( Application->ExeName ) + "pictures\\image_number_" + IntToStr( i ) + ".bmp" );
оО буду теперь знать спасибо, только теперь вот не пойму почему то ошибка вот такая. Посмотри скриншот во вложении.
Миниатюры
Вывести картинку вместо рисования графика  
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
18.12.2012, 10:47
bmp картинку надо вставлять, а не jpg
0
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
18.12.2012, 10:59  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
bmp картинку надо вставлять, а не jpg
ок, исправиль всёравно есть ошибка, вот не пойму ну почему.
Миниатюры
Вывести картинку вместо рисования графика  
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
18.12.2012, 11:01
В пути к файлу слэши экранируются:
C++
1
c:\\Test\\image1.bmp
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
18.12.2012, 11:03
два слеша надо писать не "D:\1\1", а "D:\\1\\1"
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.12.2012, 11:05
Про jpg верно - чтоб эти файлы научиться использовать идем сюда:
Не могу открыть картинку
Загрузка jpg изображений из dll
Загрузка изображения в форму
Графика в c++ builder

Еще я там строчку разглядел:
Imaqe1->Picture->LoadFromFile( ExtractFilePath ( Application->ExeName ) + "D:\униве ...(далее что-то там)
Это полная ерунда. Функция ExtractFilePath ( Application->ExeName ) в данном случае предоставляет нам путь к папке с программой, а затем ты присоединяешь к нему абсолютный путь с указанием буквы тома. Где логика?

Добавлено через 45 секунд
и слэши экранировать, разумеется...
1
0 / 0 / 2
Регистрация: 07.12.2012
Сообщений: 130
18.12.2012, 11:08  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Про jpg верно - чтоб эти файлы научиться использовать идем сюда:
Не могу открыть картинку
Загрузка jpg изображений из dll
Загрузка изображения в форму
Графика в c++ builder

Еще я там строчку разглядел:
Imaqe1->Picture->LoadFromFile( ExtractFilePath ( Application->ExeName ) + "D:\униве ...(далее что-то там)
Это полная ерунда. Функция ExtractFilePath ( Application->ExeName ) в данном случае предоставляет нам путь к папке с программой, а затем ты присоединяешь к нему абсолютный путь с указанием буквы тома. Где логика?

Добавлено через 45 секунд
и слэши экранировать, разумеется...
вот тчо там дальше было: + "D:\универ\Новая папка\Новая папка" + IntToStr( i ) + ".bmp" ); Ты мне хочешь сказать что это убрать и вместо: Application->ExeName вписать свой путь? я щас пока вообще плохо соображаю, этого не помню и ток, встал.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.12.2012, 11:14
Опять все перепутал... вот что имелось ввиду:
C++
1
Image1->Picture->LoadFromFile( String( "D:\\универ\\Новая папка\\Новая папка\\" ) + IntToStr( i ) + ".bmp" );
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2012, 11:14
Помогаю со студенческими работами здесь

Рисования графика
Есть функция y=x, надо построить график функции интервал например

процедура рисования графика функции
Напишите процедуру рисования графика функции в соответствии с вариантом, указанным в таблице. Предусмотреть вывод оцифрованных координатных...

Область рисования графика функции
Помогите студенту делающему лабу :) Как ограничить область рисования графика? допустим у меня умеется такая функция x=; for...

Графика. Компонент для рисования.
Какой компонент в С++ билдер нужно использовать для рисования??

Программа для рисования графика
Доброго времени суток! Нужно написать программу для рисования графика. Что в ней должно быть? Таблица с фиксированными значениями,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru