Jest to czyszczenie każdego piksela z danego obrazka - przypisanie każdemu pikselowi koloru białego (clWhite)
void Rysuj_prostokat(int x1, int y1, int x2, int y2, TColor kolor) { int srodek_x; Form1->Canvas->Pen->Color=kolor... srodek_x=x1+((x2-x1)/2); int i,j; for(i=srodek_x,j=srodek_x;i<x2+1,... { Form1->Canvas->MoveTo(i,y1)... Form1->Canvas->LineTo(i,y2)... Form1->Canvas->MoveTo(j,y1)...
Czyli musisz mieć gdzieś zapisany oryginał obrazka. Najprościej (zmodyfikowana metoda o której napisałem wyżej i którą zdaje się zignorowałeś) dać dwa komponenty TImage, do jednego załadować obrazek i go ukryć, do drugiego załadować obrazek z pierwszego i na nim rysować. W razie konieczności usunięcia tego co się narysowało znowu ładujemy do drugiego...
To by się zgadzało. Pomnóż wszystko np. razy 10 (pikseli), wtedy powinno być wszystko bardziej czytelne, bo w tej chwili u Ciebie 1 piksel to 1, a powinno być trochę więcej, np. 10 pikseli to 1. Sprawdź to [syntax=cpp]PaintBox1->Canvas->MoveTo(30...
Tylko jak robisz jakiś animacje w Builder c++ 2D za pomocą canvas nie zapomnij Form1->Canvas->DoubleBufering=true; bo jak nie usawisz będzie mrygało Do 3D też mozna i w DirectX lub OpenGL Mam taki jeden projekcik 3D zrobiony.Jak chcesz napisz do mnie maila to ci prześle źródło. ZAPRASZAM na www.kloszi.prv.pl
... chyba że dużo wcześniej ściągałeś ten plik bo dopiero po paru minutach przypomniałem sobie że nie mam włączonego dołączania bibliotek i zmieniłem... wcześniej zajmował coś 85k teraz (z bibliotekami 460) niezupełnie painta :-))) chciałem napisać program w którym będę mógł sobie coś narysować a potem przetworzyć na odpowiedni ciąg zer i jedynek dla...
Zostawiasz wszystkie tablice tylko zamiast wyświetlania w koncoli zrób rysowanie na płutnie: Form1->Canvas->.....
tak jak kolega btx podał. Panel1->Canvas->Brush->Color = clRed;
Ja rozwiazalem migotania w Builder v6.0 .Umiescilem animacje na PaintBox-ie "PaintBox1->Canvas->Draw(0,0,Image2->Pic... Poprostu przerysowywuje obrazek do PaintBox-a
Ja rysowalem w C++ Builderze przy pomocy: Form1->Canvas->Pixels[x][y] =TColor(kolor) Proste ale ma pewna wade..... jest bardzo wolne. Czy ktos ma inny prosty sposob ktory bylby szybszy ?
Sprawa prozaiczna, ale w żadnych helpach tego środowiska nie mogę się doszukać. Google też omija tą mało znaczącą kwestię. Otóż chcę na podstawie współrzednych x i y, wykreślać pojedyńcze punkty na formatce. Coś jak w bardziej mi znanym C++ Builder: [syntax=cpp] Canvas->Pixels[x][y]=jakis_kolor; [/syntax] W Visualu oczywiście doszedłem do zainicjowaniu...
a nie zapomniales tam klamer dla " i " petli ? for(int i=0; i<100; i++) { for(int j=0;j<100;j++) Image1->Canvas->Pixels[i][j]=clBla... }
ja to robiłem w ten sposób: {== zmienne globalne ==} down : boolean; sx, sy : integer; // współrzędne początka prostokąta ox, oy : integer; // wspórzędne końca {== zdarzenia bitmapy ==} {== onMouseDown ==} ... down := true; sx := x - Bitmap1.x; // pod zmienne sx i sy podstawiamy miejsce sy := y -...
Błąd powstaje przy obsłudze SavePictureDialog. W takiej formie błędu nie wywala: bmp = new Graphics::TBitmap; bmp->Width = PaintBox1->Width; bmp->Height = PaintBox1->Height; bmp->Canvas->CopyRect(PaintBox... PaintBox1->Canvas, PaintBox1->Canvas->ClipRect); //if(SavePictureDialog1->Execute&...
Zakładam, że rysujesz figury przy użyciu Canvas, tekst rysuje się za pomocą funkcji TextOutA , a za zamianę liczb na string odpowiada IntToStr (liczby całkowite) albo FloatToStr (liczby zmiennoprzecinkowe). Reasumując: Canvas->TextOutA(10, 10, IntToStr(123));
Proszę oto rozwiązanie problemu: void __fastcall TForm1::Button6Click(TObject *Sender) { if(SavePictureDialog1->Execute... { Chart1->SaveToBitmapFile("wy... ; } } void __fastcall TForm1::Button7Click(TObject *Sender) { if(PrintDialog1->Execute()...
Próbowałeś tak? #include <memory> #include <Graphics.hpp> ... std::auto_ptr<Graphics:... Bitmap1(new Graphics::TBitmap())... Bitmap1->LoadFromFile("..\\F... TColor pixel = Bitmap1->Canvas->Pixels[50]...
Ale autor postu chyba nie chciał tworzyć od razu nowego Gimpa, czy Painta na wszystkie platformy tylko ucząc się C++ zrozumieć tworzenie grafiki. Dla mnie C++ Builder do nauki skalowania, matematyki układu współrzędnych z przyjaznym płótnem Canvas wydaje się na początek w sam raz, zwłaszcza że w necie jest świetnie opisane. Również moduł Graphics^ dla...
Wydaje mi sie ze nie ma co kombinowac Canvas jest nie do przyjecia ale spokojnie mozesz pracowac na ScanLine. Po co meczyc sie z jakas biblioteka. Chyba ze potrzebujesz czegos czego nie ma lub czegos co trudno osiagnac piszac samemu.
TColor w[300],e[12]; w[3]=Image3->Canvas->Pixel... w[4]=Image4->Canvas->Pixel... if (w[3]==w[4]) costam costam porównanie pikseli o współrzędnych 33,33
No dzięki!!! Rozumiem, że tak: -w pierwszej pętli wypełniasz tablicę Hist[] wcześniej zebranymi danymi z Tablica_Raw[]; -zmienne wys i szer są to parametry obrazka czy słupka??? -ostania pętla konczy się za "Image2->Canvas->LineTo(x,Image2->Height... Jeśli coś tu się nie zgadza to proszę Cie o "wyprostowanie" mojego wywodu. Jak widzę...
Witam... Nie wiem czy delphi 7 ma komponent do wykresow (zalezy jeszcze od wersji) ale najwygodniej by bylo posluzyc sie wlasnie takim komponentem(Builder 6 taki ma). Poszukaj na www.4programmers.net. Jesli nie znajdziesz to mozesz rysowac po Form poprzez Canvas (Form1->Canvas...) Inne komponenty tez maja wlasciwosc canvas jednak nie wszystkie. Bedziesz...
Cześć! Do rysowania takich rzeczy Canvas nadaje się w zupełności (w help'ie jest to opisane). Tylko co chcesz animować? Pojawianie się kolejnych wartości f(x), czy obracać układ współrzędnych? Pozdrawiam! Alfrednovi
Witam, Mam taki programik napisany w c++ Builder: void __fastcall TForm1::Timer1Timer(TObject *Sender) { TCanvas *Canvas = new TCanvas(); Canvas->Handle = GetDC(0); TPoint Point; GetCursorPos(&Point); TColor Color = Canvas->Pixels[Point.x][P... delete Canvas; int RGB = ColorToRGB(Color);...
Tak też próbuję, ale coś nie mogę dać sobie z tym rady. Np. próbuję jakoś tak, ale coś mi to nie wychodzi Dżyszla. Wiem, że źle obliczam wysokość wierszy albo powinienem pobierać inaczej wartość lub zupełnie inaczej do tego podejść? for(int y=1; y<SG->RowCount; y++) { int h = SG->RowHeights[y]+10; int t = 345+y+h; F8->Image1->Canvas->TextOut(...
No właśnie wstawiłem komponent TImage i wypełniłem tło i siatke. Image1->Canvas->Brush->Color=cl... Image1->Canvas->Pen->Color=clBl... Image1->Canvas->Rectangle(0,0,... Image1->Canvas->MoveTo(0,0)... Image1->Canvas->Pen->Color=clGr... for(int i=0;i<Image1->Width;i+=15)...
W Edicie się nie da (chyba że zrobisz sobie swój Edit) może w RichEdicie tam masz Selstart SelLen i SelAttributes zmieniasz kolor i gotowe albo możesz zrobić panel który wygląda jak edit i on paint mu zrobić żeby rysować literki canvas.Font.Color, canvast.TextOut, tlko trzeba te literki jeszcze obliczać i stawiać w odpowiednim miejscu bo nie mają zazwyczaj...
W c++ builderze można otworzyć bitmapę w kontrolce TImage i dodać etykietę na płutno. Nie pamiętam dokładnie jak, ale było to coś w stylu : Image1->Canvas-> (tutaj już można się dymyśleć po podpowiedziach edytora, nie pamiętam dokładnie). Następnie trzeba zapisać do pliku.
Panowie jak zrobić obrazki rysowane na formularzu a robię to tak: Graphics::TBitmap* bitmap = new Graphics::TBitmap; bitmap->LoadFromFile("chicago3.bmp"); HRGN hRgn = CreateRectRgn(i*100,j*100,(i*100)+100,(j... SelectClipRgn(Canvas->Handle,hRgn); Canvas->Draw(i*100,j*100,bitmap); delete bitmap; nie znikały po przykryciu okna programu przez inne...
Na szczęście C++Builder korzysta z tej samej biblioteki, co Delphi i przeniesienie powinno sprowadzić się do zmiany składni pomiędzy językami. (mam nadzieję że znasz podstawy składni jednego i drugiego). Jeżeli będziesz miał jakieś kłopoty, spróbuję coś jeszcze pomóc. Na razie parę podpowiedzi: C++ nie uznaje zagnieżdżania procedur, procedurę DrawCross...
Spoko, ale rysować po "pulpicie" już umiem, zazwyczaj używam do tego: TCanvas * Graf = new TCanvas; Graf->Handle=GetDC(0); //uchwyt pulpitu for(int i=0;i<=1000;i++) Graf->LineTo(random(1024)... //tak dla przykładu delete Graf; //sprzątanie No i wszystko ładnie i pięknie, ale jak to usunąć?...
W sumie to nie jestem pewien czy chodzi Ci o przeniesienie przycisku tak jak okienka czy o faktyczną technikę Drag'n'Drop. Jeśli o to drugie (przy czym można w ten sposób wykonać również to pierwsze): wstaw kilka komponentów TLabel i TButton, ustaw ich wartość DragMode na dmAutomatic. Wstaw TImage. Do zdarzenia OnDragOver w Image1 wstaw taki kod: void...
Z użyciem TPaintBox np. tak: #include <Graphics.hpp> w deklaracji klasy czy przestrzeni globalnej: Graphics::TBitmap *DoubleBuffer; w OnCreate: DoubleBuffer = new Graphics::TBitmap; DoubleBuffer->Height=PaintBox1->He... DoubleBuffer->Width=PaintBox1->Wid... PaintBox1->ControlStyle = PaintBox1->ControlStyle...
Witam ! Mam taki mały problemik. Pisze program, który wczytuje bmp, oraz jpg które w momencie wczytywania są konwertowane również na bmp. No i dochodzimy do sedna sprawy, a mianowicie wczytuje plik jpg który ma prawie 7Mb no i po konwersji do bmp ma prawie 140 Mb (w ACDSee) i w tym momencie mój program sie wykracza, po prostu plik bmp jest za duży a...
c++ builder, problemem podstawowym jest dla mie wprowadzenie skali odpowiedniej dla karzdej liczby i nie moge sobie poradzic z rozpoczenciem rysowania w odpowiednim kierunku, korzystam z plotna i na razie wyglonda to tak a=complex<float>(Edit1->Text.To... x=a.real(); y=a.imag(); sze=160; wy=160; Image1->Width=sze;...
Do czegoś takiego mniej więcej doszedłem, ale z wykorzystaniem Form1->Canvas. Tylko że jest problem. Bo jak to okno przesłonię drugim oknem to zaczyna mi odczytywać to co widać zamiast tych klatek. I wydaje mi się że z twoją propozycją będzie to samo. Dlatego szukam czegoś w rodzaju TBitmap:Film->GetFrame(int) :D czyli tak aby tego filmu nie musieć...
Po prostu tworzysz drugie okienko z dwoma obiektami typu image. W programie je pokazujesz modalnie (ShowModal) [i wcześniej tworzysz, jeśli postanowisz oszczędzać zasoby i zrezygnujesz z umieszczenia w sekcji autocreate forms projektu], następnie kopiujesz na pierwszy obrazek swój obraz (Canvas.Draw) i stosując swoje algorytmy umieszczasz obraz po zastosowaniu...
pan_kotek, a co tu może nie działać? :P Możesz mieć kolor zły ustawiony w Image1->Canvas, Możesz mieć Image1->Visible = false zamiast true i parę innych rzeczy. Umieść tutaj źródło, bo twój problem jak tak banalny, że chyba nikt ci nie powie bez kodu, bo wiara nie sięga tak daleko :P A tak na poważnie to dajcie kody źródłowe prostych programów. Przecież...
Pisze w Builderze,ze zdarzen obsługujących bitmape raczej niema możliwości takiego kopiowania. Piszesz obsługę OnMouseDown, zapamiętujesz współrzędne kliknięcia. Piszesz obsługę OnMouseUp i w niej korzystając ze współrzędnych wcześniej zapamiętanych i aktualnych kopiujesz jak napisał radziow fragment canvas gdzie sobie życzysz.
Wielki dzieki za kod, ale nie masz czasem dla buildera c++? w VB sie nie bawie pozdrawiam
Witam ! mam metode: void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { ... if (Key == VK_LEFT) i=i-5; if (Key == VK_RIGHT) i=i+5; if (Key == VK_UP) j=j-5; if (Key == VK_DOWN) j=j+5; Canvas->Draw(i,j,bit); } i jak naciskam strzałki nie działa ale jezeli...
Tworze wykresy dynamiczne, w celu uniknięcia migotania przy przeskalowaniu wykorzystuje klase: Graphics::TBitmap* bitmap=new Graphics::TBitmap; cos tam rysuje do bitmap następnie Form2->Canvas->Draw(0,0,bitmap... delete bitmap; To wszystko robie w ciele jednej z funkcji. W dalszym ciągu chciałbym móc powiększać prostokątnym...
Spróbuj algorytmu z punktem pośrednim. To implementacja, którą wykonałem pod borland c++ builder. Co prawda jest tam mnożenie ale można to na dodawanie łatwo zmienić. Nie wiem czy akurat o coś takiego Ci chodziło ale może Ci się przyda. void Line_midpoint(double x0, double y0, double x1, double y1) { double dx = x1 - x0; double dy = y1...
cześć, podpowiedzcie koledzy jak uniknąć wywoływania zdarzenia OnMouseDown na części obrazka, który jest przezroczysty, ale tak, aby wywołało się ono na elementach, które są pod spodem? załóżmy, że mamy obrazki porozrzucane na całej formie, z różnymi rodzicami, gdziekolwiek na memo, na panelach czy na image'ach. obrazki mają przezroczyste tło i będą...
Drukowanie Memo: #include <Printers.hpp> // ważne! ten moduł trzeba włączyć do projektu. //--------------------------------------... private: void __fastcall PrintMemo(TMemo *Memo, TPrintDialog *PrintDialog); void PrintPage(int page); TStringList *pages; int currentpage; // Plik źródłowy np....
Witam Robie rysunek w C++ Builder na Canvasie prostokąta z przekątnymi. Zrobiłem jego obracanie. Jak zrobić aby obrócony obiekt jechał w tą stronę gdzie ja go obrócę. Czyli jak obrócę go o 45 stopni to jak zadam mu komendę żeby jechał prosto to ma jechać prosto ale pod tym kątem. Jak to zrobić ??
http://cpw.net.pl/forum/viewtopic.php?t=... Dodano po 49 Witam!! Tutaj prosty przykład z rysowaniem prostej funkcji w I ćwiartce układu współrzędnych. Dopiero niedawno poznałem komponent TCart, ale mozliwości ma ogromne. Rysowanie możesz zrobic na zwykłym Canvasie, ale wtedy musiałbys się zająć narysowaniem osi, podziałki itp. Zależy jakie funkcje...
Co do samego wyświetlania to używałem takiego sposobu: Form1->Canvas->Pixels myrcioch tutaj http://www.elektroda.pl/rtvforum/topic20... Szybkość wyświetlania polepszyła się znacząco. Załączam zmodyfikowany program. Stary program jest tu: http://www.elektroda.pl/rtvforum/topic14... duży plik dla nie mających Buildera mały dla mających...
JIIIS - to dotyczy nawet WinAPI :) Wszystkie funkcje klasy TCanvas odnajdzie się także w czystym WinAPI. jak sie uprzesz to i w assemblerze sie znajda ;) zartuje, po prostu ze dwa razy napisalem okienka w WinAPI i jak tylko moge to omijam z daleka programy w calosci pisane w nim, a wywolywanie niektorych funkcji w Builderze, czy Delphi to juz inna...
Witam, piszę program coś na wzór Audacity. Mam 1 problem, nie mogę zrobić zaznaczania fragmentu oscylogramu pliku wav. Piszę to w builder C++. Poniżej dołączam fragmenty kodu jak to robię, wszystko jest ok tylko jak przeciągam myszką to zaznaczenie się nie rysuje. A chodzi mi o to, żeby zrobić to tak, że jak nacisnę przycisk myszki i przeciągam kursorem...
javascript canvas delphi canvas wykres canvas
coding ibiza prądnica pierścieniowa renault magnum modulator
lodówka whirlpool sterownik roweru elektrycznego
Whirlpool JT479 - Mikrofala nie wyłącza grzania Mikrofala Whirlpool JT479 nie wyłącza grzania po osiągnięciu temperatury