Задача: построение фигуры по точкам, периметр (C++Builder)

Тема в разделе "C/C++/C#", создана пользователем StydenTo4ka, 24 ноя 2010.

  1. StydenTo4ka

    StydenTo4ka Гость

    Код (C++):
    #include <vcl.h>
    #pragma hdrstop

    #include "Unit1.h"

    #include <fstream.h>
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    struct Koord{
    int x;
    int y;
    };
    const int K=100;
    Koord mast[K];
    int i=0;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Image1MouseDown(TObject *Sender,
    TMouseButton Button, TShiftState Shift, int X, int Y)
    { {
    if(Shift.Contains(ssLeft)){
    mast[i].x=X;
    mast[i].y=Y;
    Image1->Canvas->Brush->Color=clWhite;
    Image1->Canvas->TextOutA(X,Y+5,i+1);
    Image1->Canvas->Brush->Color=clRed;
    Image1->Canvas->Ellipse(X-5,Y-5,X+5,Y+5);
    i++;}
    }

    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    {
    if(i>0){
    for(int j=0;j<i-1;j++){
    Image1->Canvas->Pen->Color=clBlue;
    Image1->Canvas->MoveTo(mast[j].x,mast[j].y);
    Image1->Canvas->LineTo(mast[j+1].x,mast[j+1].y);
    }
    }
    }    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    {


    if(SaveDialog1->Execute()){
    ofstream fout(SaveDialog1->FileName.c_str());
    for(int j=0;j<i;j++){
    fout<<mast[j].x<<" "<< mast[j].y<<"\n";
    }
    }
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    {
    Image1->Canvas->Brush->Color=clWhite;
    Image1->Canvas->FillRect(Rect(0,0,Image1->Width,Image1->Height));
    i=0;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    { {
    i=0;
    if(OpenDialog1->Execute()){
    ifstream fin(OpenDialog1->FileName.c_str());
    char s;
    int k=0;
    while(!fin.eof()){
    fin.get(s);
    if(s=='\n') k++;}
    k=k-1;
    Koord *m=new Koord[k];
    fin.close();
    ifstream fin2(OpenDialog1->FileName.c_str());
    for(int j=0;j<k;j++){
    fin2>>m[j].x>>m[j].y;
    }
    fin2.close();
    for(int j=0;j<k;j++){
    Image1->Canvas->Brush->Color=clWhite;
    Image1->Canvas->TextOutA(m[j].x,m[j].y+5,i+1);
    Image1->Canvas->Brush->Color=clRed;
    Image1->Canvas->Ellipse(m[j].x-5,m[j].y-5,m[j].x+5,m[j].y+5);
    i++;
    }
    for(int j=0;j<i-1;j++){
    Image1->Canvas->Pen->Color=clBlue;
    Image1->Canvas->MoveTo(m[j].x,m[j].y);
    Image1->Canvas->LineTo(m[j+1].x,m[j+1].y);
    }
    }
    }

    }


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

    может кто-нибудь помочь?
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Помогу, если скинишь исходные файлы с Билдера....
     
  3. StydenTo4ka

    StydenTo4ka Гость

    давай..буду очень признательна..а куда тебе скинуть??
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Прямо сюда... :)
    *снизу можно прикреплять файлы (сначало только заархивируй)
     
Загрузка...
Похожие Темы - Задача построение фигуры
  1. dannyblinov
    Ответов:
    0
    Просмотров:
    1.235
  2. Янчик
    Ответов:
    0
    Просмотров:
    470
  3. TrishaRay
    Ответов:
    1
    Просмотров:
    777
  4. elzim
    Ответов:
    0
    Просмотров:
    928
  5. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.112

Поделиться этой страницей