CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум C++ > Форум C++ Builder

Ответ Создать новую тему
 
Старый 30.01.2012, 21:19   #1
Vovik_0_1
Форумчанин
 
Аватар для Vovik_0_1
 
Регистрация: 28.07.2011
Адрес: Сколково!
Сообщений: 216
Репутация: 31 (31)
По умолчанию Помогите с поворотом картинки!

Вот нашёл код но в цикле For выбивает ошибку
Код C++
1
[C++ Error] Unit1.cpp(54): E2378 For statement missing ;
и
Код C++
1
[C++ Warning] Unit1.cpp(70): W8004 'x' is assigned a value that is never used
как исправить? Вот код
Код 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
#include "Math.h"
#define min(a, b) (((a) < (b)) ? (a) : (b)) 
#define max(a, b) (((a) > (b)) ? (a) : (b))
 
AnsiString m2 = 45;
int m = m2.ToInt();
int angle=m;
Graphics::TBitmap *SrcBitmap=new Graphics::TBitmap; 
Graphics::TBitmap *DestBitmap=new Graphics::TBitmap; 
SrcBitmap->LoadFromFile("Эмблема.bmp");
float radians=(2*3.1416*angle)/360; 
 
float cosine=(float)cos(radians);
float sine=(float)sin(radians); 
 
float Point1x=(-SrcBitmap->Height*sine); 
float Point1y=(SrcBitmap->Height*cosine); 
float Point2x=(SrcBitmap->Width*cosine-SrcBitmap->Height*sine);
float Point2y=(SrcBitmap->Height*cosine+SrcBitmap->Width*sine);
float Point3x=(SrcBitmap->Width*cosine);
float Point3y=(SrcBitmap->Width*sine); 
 
float minx=min(0,min(Point1x,min(Point2x,Point3x)));
float miny=min(0,min(Point1y,min(Point2y,Point3y)));
float maxx=max(Point1x,max(Point2x,Point3x));
float maxy=max(Point1y,max(Point2y,Point3y));
 
int DestBitmapWidth=(int)ceil(maxx-minx);
int DestBitmapHeight=(int)ceil(maxy-miny);
 
DestBitmap->Height=DestBitmapHeight;
DestBitmap->Width=DestBitmapWidth;
 
for(int x=0;x { 
for(int y=0;y { 
int SrcBitmapx=(int)((x+minx)*cosine+(y+miny)*sine); 
int SrcBitmapy=(int)((y+miny)*cosine-(x+minx)*sine); 
if(SrcBitmapx>=0&&SrcBitmapxWidth&&SrcBitmapy>=0&& 
SrcBitmapyHeight) 
{ 
DestBitmap->Canvas->Pixels[x][y]= 
SrcBitmap->Canvas->Pixels[SrcBitmapx][SrcBitmapy]; 
} 
} 
} 
 
Image1->Picture->Bitmap=DestBitmap; 
delete DestBitmap; 
delete SrcBitmap;
Vovik_0_1 вне форума
Другие темы раздела
C++ Builder Может ли конструктор формы возвращать NULL
Это нужно вот зачем. Создаю форму, которая должна работать с файлом. А файла нет. Существование форму бессмысленно. TForm2::Tform2(... char *Name) { FILE *f = fopen(Name, "r"); if (f==NULL) { ShowMessage("Нет файла"); delete this; // ??? this = NULL; // ???? return.... Может ли конструктор формы возвращать NULL
C++ Builder Проверка наличия CD привода
В "SYSTEM\\CurrentControlSet\\Services\\Cdrom\\Enum" храниться информация только о том, какие CD приводы подключались к компьютеру. Функция mciSendString("capability cdaudio can play wait", NULL, 0, F->Handle) всё время выдаёт один и тот же результат, вне зависимости от того, подключён ли CD-ROM..... Проверка наличия CD привода
Старый 30.01.2012, 21:44   #2
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 23.09.2011
Сообщений: 796
Репутация: 502 (379)
По умолчанию Re: Помогите с поворотом картинки!

- это у Вас никак циклы в 34-35 стр прописаны? .. занятно...
nick42 вне форума
Старый 30.01.2012, 22:01   #3
DefineTrueFalse
Форумчанин
 
Регистрация: 25.10.2011
Сообщений: 743
Репутация: 726 (334)
По умолчанию Re: Помогите с поворотом картинки!

Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
for(int x=0;x {
for(int y=0;y {
Зачетный копипаст.
Код C++
1
2
3
4
for (int index = 0; index < count; index++)
{
  // действия в цикле
}
Один из вариантов конструкции цикла, где index - переменная, что изменяет свое значение от 0 до (count - 1), а count - соотвественно значение сколько индекс будет прыгать.
DefineTrueFalse вне форума
Старый 30.01.2012, 22:28   #4
__bool
Форумчанин
 
Аватар для __bool
 
Регистрация: 13.06.2010
Адрес: Екб
Сообщений: 725
Репутация: 270 (211)
По умолчанию Re: Помогите с поворотом картинки!

Оуе.. Такого еще не видел!!
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int x=0;x { 
for(int y=0;y { 
int SrcBitmapx=(int)((x+minx)*cosine+(y+miny)*sine); 
int SrcBitmapy=(int)((y+miny)*cosine-(x+minx)*sine); 
if(SrcBitmapx>=0&&SrcBitmapxWidth&&SrcBitmapy>=0&& 
SrcBitmapyHeight) 
{ 
DestBitmap->Canvas->Pixels[x][y]= 
SrcBitmap->Canvas->Pixels[SrcBitmapx][SrcBitmapy]; 
} 
} 
}
Даже не осмеливаюсь предположить что вы задумали..
__bool вне форума
Старый 30.01.2012, 23:30   #5
TswetkOFF
Новичок
 
Регистрация: 14.12.2010
Сообщений: 7
Репутация: 3 (3)
По умолчанию Re: Помогите с поворотом картинки!

как-то так:
Код 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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Math.h"
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define max(a, b) (((a) > (b)) ? (a) : (b))
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
AnsiString m2 = 60; //угол поворота
int m = m2.ToInt();
int angle=m;
Graphics::TBitmap *SrcBitmap=new Graphics::TBitmap;
Graphics::TBitmap *DestBitmap=new Graphics::TBitmap;
SrcBitmap->LoadFromFile("1.bmp");
float radians=(2*3.1416*angle)/360;
 
float cosine=(float)cos(radians);
float sine=(float)sin(radians);
 
float Point1x=(-SrcBitmap->Height*sine);
float Point1y=(SrcBitmap->Height*cosine);
float Point2x=(SrcBitmap->Width*cosine-SrcBitmap->Height*sine);
float Point2y=(SrcBitmap->Height*cosine+SrcBitmap->Width*sine);
float Point3x=(SrcBitmap->Width*cosine);
float Point3y=(SrcBitmap->Width*sine);
 
float minx=min(0,min(Point1x,min(Point2x,Point3x)));
float miny=min(0,min(Point1y,min(Point2y,Point3y)));
float maxx=max(Point1x,max(Point2x,Point3x));
float maxy=max(Point1y,max(Point2y,Point3y));
 
int DestBitmapWidth=(int)ceil(maxx-minx);
int DestBitmapHeight=(int)ceil(maxy-miny);
 
DestBitmap->Height=DestBitmapHeight;
DestBitmap->Width=DestBitmapWidth;
 
for(int x=1;x<=DestBitmap->Width; x++) {
for(int y=1;y<=DestBitmap->Height; y++) {
int SrcBitmapx=(int)((x+minx)*cosine+(y+miny)*sine);
int SrcBitmapy=(int)((y+miny)*cosine-(x+minx)*sine);
/*if(SrcBitmapx>=0&&SrcBitmapx&&Width&&SrcBitmapy>=0&&
SrcBitmapy&&Height)
{ */
DestBitmap->Canvas->Pixels[x][y]=
SrcBitmap->Canvas->Pixels[SrcBitmapx][SrcBitmapy];
//}
}
}
 
Image1->Picture->Bitmap=DestBitmap;
delete DestBitmap;
delete SrcBitmap;
}
//
//
//---------------------------------------------------------------------------
TswetkOFF вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 30.01.2012, 23:34   #6
LK
Модератор
 
Аватар для LK
 
Регистрация: 09.04.2010
Сообщений: 9,548
Репутация: 6295 (3791)
По умолчанию Re: Помогите с поворотом картинки!


Не по теме:
Народ, хорошо бы по делу и без эмоций.
LK вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
PHP: Регулярные выражения помогите отделить картинки от мусора
есть переменная хранящая хтмл код страницы , надо всё снести оставить ток картинки такого типа , айдишник и позиция меняется <img src="http://img.ereality.ru/map/obj/8005.png?s4" width="128"height="96"style="z-index:2;position:absolute;left:512px;top:416px;"/>
crautcher
Delphi Изменение яркости картинки, помогите исправить ошибку!
У меня есть код procedure TForm1.TrackBar1Change(Sender: TObject); var i,j,trackPos: integer; r,g,b: byte; rc,gc,bc: byte; begin for i:=0 to Image1.Picture.Width do begin for j:=0 to Image1.Picture.Height do begin r:=GetRValue(Image1.Canvas.Pixels);
valera5505
PHP и сети Поиск и сохранение изображений от Google.Картинки и Яндекс.Картинки
Мир вам, братья по увлечению! Я на вашем форуме впервые, давно хотел влиться в какое-нибудь сообщество веб-девелоперов, т.к. сам уже немного набрался опыту на этом деле. Я сейчас занимаюсь разработкой одного интернет-магазина сантехники на основе Joomla. Написал скрипт для заказчика, чтобы...
Ahmed90
Delphi: графика, звук, видео Движение полукруга по периметру прямоугольника с поворотом в углах
почему то работает только одна из процедур... по отдельности каждая работает нормально unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
TOD
ASP.NET можно ли (и как) получить размеры картинки из файла до вывода собственно картинки на клиента?
Подскажите, плз, можно ли (и как) получить размеры картинки из файла до вывода собственно картинки на клиента? Желательно с помощью VBScript'а...
Alex10
Опции темы

Текущее время: 00:34. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru Яндекс.Метрика