рдкреНрд▓реБрдЯреЛрднреАрдЬреА рез.реж.реж

рдорд╛рд░реНрдЪ резрез рдорд╛, реиD рднреЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдХреЛ рез.реж.реж рдХреЛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рднрдпреЛред PlutoVG, C рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд░ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рддред рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдХреБрдиреИ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдЫреИрдиред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ:

  • рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╢реИрд▓реАрд╣рд░реВ;
  • рдареЛрд╕, рдЧреНрд░реЗрдбрд┐рдпрдиреНрдЯ рд░ рдмрдирд╛рд╡рдЯ рдЫрд╛рдпрд╛рдВрдХрди;
  • рдлрдиреНрдЯ рд░ рдкрд╛рда;
  • рдЫрд╛рдБрдЯреНрдиреЗ рд░ рд╕рдВрд░рдЪрдирд╛;
  • рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВ;
  • ╨╕╨╖╨╛╨▒╤А╨░╨╢╨╡╨╜╨╕╤П

рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХрдХрд╛ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ: LunaSVG ╨╕ рдкреНрд▓реБрдЯреЛрдПрд╕рднреАрдЬреА.

рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реБ:

  • рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН SemVer рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ред
  • PLUTOVG_EMPTY_POINT рд░ PLUTOVG_EMPTY_RECT рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рдердкрд┐рдПред

рдХреЛрдб:

#рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН int main(void) { const int width = резрелреж; рд╕реНрдерд┐рд░ int рдЙрдЪрд╛рдЗ = резрелреж; const рдлреНрд▓реЛрдЯ center_x = рдЪреМрдбрд╛рдЗ / реи.f; const рдлреНрд▓реЛрдЯ center_y = рдЙрдЪрд╛рдЗ / реи.f; const рдлреНрд▓реЛрдЯ рдлреЗрд╕_рд░реЗрдбрд┐рдпрд╕ = ренреж; const float mouth_radius = релреж; const рдлреНрд▓реЛрдЯ рдЖрдБрдЦрд╛_рддреНрд░рд┐рдЬреНрдпрд╛ = резреж; рдХрдиреНрд╕реНрдЯ рдлреНрд▓реЛрдЯ рдЖрдИ_рдЕрдлрд╕реЗрдЯ_рдПрдХреНрд╕ = реирел; рдХрдиреНрд╕реНрдЯ рдлреНрд▓реЛрдЯ рдЖрдИ_рдЕрдлрд╕реЗрдЯ_рд╡рд╛рдИ = реиреж; const float eye_x = center_x тАФ eye_offset_x; const float eye_y = center_y тАФ eye_offset_y; рдкреНрд▓реБрдЯреЛрднрдЧ_рд╕рддрд╣_рдЯреА* рд╕рддрд╣ = рдкреНрд▓реБрдЯреЛрднрдЧ_рд╕рддрд╣_рд╕рд┐рд░реНрдЬрдирд╛(рдЪреМрдбрд╛рдЗ, рдЙрдЪрд╛рдЗ); рдкреНрд▓реБрдЯреЛрднрдЧ_рдХреНрдпрд╛рдирднрд╛рд╕_рдЯреА* рдХреНрдпрд╛рдирднрд╛рд╕ = рдкреНрд▓реБрдЯреЛрднрдЧ_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕рд┐рд░реНрдЬрдирд╛(рд╕рддрд╣); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реЗрдн(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдЪрд╛рдк(рдХреНрдпрд╛рдирднрд╛рд╕, рдХреЗрдиреНрджреНрд░_x, рдХреЗрдиреНрджреНрд░_y, рдЕрдиреБрд╣рд╛рд░_рддреНрд░рд┐рдЬреНрдпрд╛, реж, рдкреНрд▓реБрдЯреЛрднрдЬреА_TWO_PI, реж); plutovg_canvas_set_rgb(canvas, 150, 150, 2); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рднрд░рдг_рд╕рдВрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН(рдХреНрдпрд╛рдирднрд╛рд╕); plutovg_canvas_set_rgb(рдХреНрдпрд╛рдирднрд╛рд╕, реж, реж, реж); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реЗрдЯ_рд▓рд╛рдЗрди_рдЪреМрдбрд╛рдЗ(рдХреНрдпрд╛рдирднрд╛рд╕, рел); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реНрдЯреНрд░реЛрдХ(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реЗрдн(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдЖрд░реНрдХ(рдХреНрдпрд╛рдирднрд╛рд╕, рдЖрдБрдЦрд╛_рдПрдХреНрд╕, рдЖрдБрдЦрд╛_рд╡рд╛рдИ, рдЖрдБрдЦрд╛_рддреНрд░рд┐рдЬреНрдпрд╛, реж, рдкреНрд▓реБрдЯреЛрднрдЬреА_рдЯрдмреНрд▓реЛ_рдкреАрдЖрдИ, реж); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдЪрд╛рдк(рдХреНрдпрд╛рдирднрд╛рд╕, рдХреЗрдиреНрджреНрд░_рдПрдХреНрд╕ + рдЖрдБрдЦрд╛_рдЕрдлрд╕реЗрдЯ_рдПрдХреНрд╕, рдЖрдБрдЦрд╛_рд╡рд╛рдИ, рдЖрдБрдЦрд╛_рддреНрд░рд┐рдЬреНрдпрд╛, реж, рдкреНрд▓реБрдЯреЛрднрдЬреА_рдЯрдмреНрд▓реЛ_рдкреАрдЖрдИ, реж); plutovg_canvas_set_rgb(рдХреНрдпрд╛рдирднрд╛рд╕, реж, реж, реж); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдлрд┐рд▓(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реЗрдн(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдЪрд╛рдк(рдХреНрдпрд╛рдирднрд╛рд╕, рдХреЗрдиреНрджреНрд░_x, рдХреЗрдиреНрджреНрд░_y, рдореБрдЦ_рддреНрд░рд┐рдЬреНрдпрд╛, реж, рдкреНрд▓реБрдЯреЛрднрдЬреА_рдкреАрдЖрдИ, реж); plutovg_canvas_set_rgb(рдХреНрдпрд╛рдирднрд╛рд╕, реж, реж, реж); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реЗрдЯ_рд▓рд╛рдЗрди_рдЪреМрдбрд╛рдЗ(рдХреНрдпрд╛рдирднрд╛рд╕, рел); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рд╕реНрдЯреНрд░реЛрдХ(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рд╕рддрд╣_рд▓реЗрдЦрди_рдЯреБ_рдкреАрдПрдирдЬреА(рд╕рддрд╣, "рд╕реНрдорд╛рдЗрд▓реА.рдкреАрдПрдирдЬреА"); рдкреНрд▓реБрдЯреЛрднрдЬреА_рдХреНрдпрд╛рдирднрд╛рд╕_рдбрд┐рд╕реНрдЯреНрд░реЛрдп(рдХреНрдпрд╛рдирднрд╛рд╕); рдкреНрд▓реБрдЯреЛрднрдЬреА_рд╕рддрд╣_рд╡рд┐рдирд╛рд╢(рд╕рддрд╣); реж рдлрд░реНрдХрд╛рдЙрдБрдЫ; }

ЁЯШГ рдХреЛрд░реНрдЫ рд░ smiley.png рдлрд╛рдЗрд▓рдорд╛ рд╕реЗрдн рдЧрд░реНрдЫред ЁЯЩВ

рд╕реНрд░реЛрдд: linux.org.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди