Jest to czyszczenie każdego piksela z danego obrazka - przypisanie każdemu pikselowi koloru białego (clWhite)
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
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...
Troszkę bym przerobił te funkcje żeby były bardziej elastyczne - w wywołaniu podawać wskaźnik do Canvas na którym chcemy rysować. void Rysuj_prostokat(TCanvas *c, int x1, int y1, int x2, int y2, TColor kolor) { int srodek_x; c->Pen->Color=kolor; srodek_x=x1+((x2-x1)/2); int i,j; for(i=srodek_x,j=srodek_x;i<x2+1,...
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
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...
Osobiście tego nie próbowałem lecz zanalazłem coś takiego: Canvas.Handle := GetWindowDC(GetDesktopWindow); Canvas.TextOut(100,100, 'To jest tekst wyświetlony na pulpicie'); ReleaseDC(GetDesktopWindow, Canvas.Handle); Nie próbowałem tego , lecz powinno zadziałać . Jak sam to wypróbuję to dam znać
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...
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...
... 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...
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...
Zostawiasz wszystkie tablice tylko zamiast wyświetlania w koncoli zrób rysowanie na płutnie: Form1->Canvas->.....
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()...
tak jak kolega btx podał. Panel1->Canvas->Brush->Color = clRed;
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&...
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
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]...
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));
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...
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
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...
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(...
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);...
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)...
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...
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...
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;...
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...
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 -...
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...
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ć...
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ż...
Wielki dzieki za kod, ale nie masz czasem dla buildera c++? w VB sie nie bawie pozdrawiam
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...
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...
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...
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... }
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ę...
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.
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ą...
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...
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...
OK, odgrzebałem stary projekt, w którym wyświetlałem różne wykresy przy pomocy C++ Buildera. 1. Na odpowiedniej formie programu wstawiamy pusty komponent TImage i nazywamy go np. IMG 2. Najlepiej od razu w konstruktorze dajemy IMG->Picture->Bitmap->PixelForm... Będzie nam później łatwiej operować na pikselach - każdy z nich będzie zajmował...
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...
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.
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.
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...
Mam problem z utworzeniem obrazu tasmoty, do którego muszę dodać plik user_config_override.h, aby włączyć obsługę RTC DS3231. [syntax=arduino] #ifndef USE_RTC_CHIPS #define USE_RTC_CHIPS // Enable RTC chip support and NTP server #endif #ifndef USE_DS3231 #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code) #endif #ifndef...
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...
wykres canvas javascript canvas delphi canvas
pralk miele volvo silnika axesstel mv610
delonghi dinamica poznaniak próba kręcona
Motorola Edge 40 Neo a uruchamianie bramek sklepowe OpenBeken autoexec.bat script to toggle relay on BK7231 from two button inputs