Skocz do zawartości

Podziel się pomysłem na artykuł! Dyskusje o pomysłach


Pomocna odpowiedź

Napisano

Poniższe posty zostały wydzielone z poniższego tematu:

--------------------------------------------

Dnia 11.12.2019 o 21:13, Zealota napisał:

Proponuję zatem interfejs OSD do kamery RPI na podstawie źródeł raspistill i raspivid w języku C++ 🙂

Nasi koledzy z Rosji juz ten temat przerobili. tak samo jak kwestie firmwareowe dla wiekszosci chinskich wynalazkow. Niemniej, Twoj pomysl ciekawy jest, ciekawy. pojawia sie tylko jeden wrog.....czas potrzebny na realizacje. 

Dnia 11.12.2019 o 21:13, Zealota napisał:

Proponuję zatem interfejs OSD do kamery RPI na podstawie źródeł raspistill i raspivid w języku C++ 🙂

moze zle zrozumialem, ale nie chodzi Tobie o kwestie onvif, tylko typowo podlaczanego pod malinke modulu kamery, tak?

Przed chwilą, Zealota napisał:

No to może jakiś odnośnik, no chyba, że to sprawa tajna 🙂

zebym tylko pamietal, to chetnie bym go podal. niestety nie dodalem do zakladek. Ale sprawa sie rozwijala na habr.com tyle pamietam, bo czesto tam  zerkam, niestety, przepraszam, konkretny link nie jest w moim posiadaniu. Jesli znajdziesz, podziel sie. 

takie drobne wprowadzenie do processing jest na forum tutaj. Podałem tam dwa przykłady a poniżej masz kolejny 

float theta = 0;

void setup() {
 size(500,500);
 background(0);
}

void draw() {
 stroke(0);
 // sun in center
 translate(width/2, height/2);
 fill(255,200,50);
 ellipse(0,0,20,20);
 
 // earth rotates around the sun
 
 pushMatrix();
 rotate(theta);
 translate(50,0);
 fill(50,200,255);
 ellipse(0,0,10,10);
 
 
 // moon 1 rotates around the earth
 
 pushMatrix();
 rotate(-theta*4);
 translate(15,0);
 fill(50,255,200);
 ellipse(0,0,6,6);
 popMatrix();
 
 // moon 2 rotates around the earth
 
 pushMatrix();
 rotate(theta*2);
 translate(25,0);
 fill(50,255,200);
 ellipse(0,0,6,6);
 popMatrix();
 popMatrix();
 
 theta+=0.01;

}

a tak to wygląda w praktyce. W rzeczywistości animacja jest o wiele płynniejsza (draw() domyślnie "rysuj" 60 razy na sekunde).

2019-12-16-22-41-23.thumb.gif.729698b59edff09a91fc89c2b764e216.gif

Processing jest o tyle ciekawy co do tworzenia efektów graficznych , że jak coś napiszesz nie tak jak powinno być to można dostać efekt inny od zamierzonego ale często bardzo ciekawy. Poniżej przykład

kwadrat myKwadrat1;
kwadrat myKwadrat2;
kwadrat myKwadrat3;
kwadrat myKwadrat4;
float theta;
void setup() {
 size(500,500);
 background(0);
 myKwadrat1 = new kwadrat(100,124,124);
 myKwadrat2 = new kwadrat(100,52,52);
 myKwadrat3 = new kwadrat(100,52,52);
 myKwadrat4 = new kwadrat(100,52,52);
}

void draw() {
  theta +=0.1;
  myKwadrat1.display();
  myKwadrat2.display();
  myKwadrat3.display();
  myKwadrat4.display();
}

class kwadrat {
  color c;
  int x;
  int y;
  //float theta;

 kwadrat (color tempC, int tempX, int tempY) { // float tempTheta) {
  c = tempC;
  x = tempX;
  y = tempY;
  //theta = tempTheta;
   
 }
 
 void display() {
   fill(c);
   translate(x,y);  // Translate to the center
   //translate(width/2,height/2);
   rotate(theta);   // Rotate by theta
   rect(0, 0, 52, 52);
   
 }
}

tak to wygląda w rzeczywistości

2019-12-16-23-03-31.thumb.gif.39c5dc03c33d643e23fe35876d37a716.gif

tutaj moje założenie co do tego jak to miało wyglądać możesz zobaczyć w wiadomości, którą podlinkowałem na początku tematu.

  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...