Dibuja el conejito de pascua


14

Este individuo feliz es conocido en el folklore como el Conejito de Pascua.

conejo de Pascua

Colores

Se crea con 4 colores:

  • Rosa claro
  • Rosa oscuro
  • Blanco
  • Negro

(Me alegra que estos colores se aproximen en tu respuesta. No es necesario que sea este tono preciso)

Formas

Está construido de estas formas:

  • Dos elipses altas de color rosa claro (orejas externas). Tienen la misma altura y anchura.
  • Dos elipses altas en rosa oscuro (orejas internas). Son más pequeños que los oídos externos y uno se dibuja en la parte superior de cada uno de los oídos externos. Son de la misma altura y anchura.
  • Un círculo grande en rosa claro (cabeza). Se cruza con el tercio inferior de ambos oídos externos (pero no más arriba).
  • Dos círculos en blanco (ojos externos). Están dibujados en la cabeza. Su diámetro es menor que el ancho de las orejas externas. Tienen la misma posición horizontal que las orejas externas.
  • Dos círculos en negro (ojos internos). Tienen un diámetro menor que los ojos externos. Uno se dibuja en cada uno de los ojos externos.
  • Una línea vertical en negro (boca superior). Se dibuja en la cabeza y está más abajo que la parte inferior de los ojos externos. Es aproximadamente equidistante de cada ojo.
  • Dos arcos en negro (boca inferior). Se dibujan en la cabeza y se arquean hacia abajo desde una línea horizontal. Ambos se cruzan con la parte inferior de la boca superior, pero uno va a la derecha y el otro a la izquierda.

Las normas

  • Utiliza cualquier idioma y herramientas que te gusten.
  • La salida puede ser una imagen, html, svg u otro marcado.
  • Es un código de golf, así que intenta hacerlo en el menor número de bytes.
  • Incluya una captura de pantalla del resultado.
  • Por favor, siéntase libre de aproximar los colores definidos.

¡Felices Pascuas!


¿Qué tamaño de imagen te gustaría?
Neil

El tamaño de @Neil no importa, Neil. Siempre que cumpla con los requisitos de forma y color.
AJFaraday

Tengo una respuesta desmos en las obras. ¿Es aceptable no tener blanco en los ojos?
Benjamin Urquhart

@BenjaminUrquhart no realmente. Eso simplifica considerablemente el proceso. Podrías hacerlo gris, si eso ayuda.
AJFaraday

1
@BenjaminUrquhart funciona para mí
AJFaraday

Respuestas:


18

T-SQL, 445 439 bytes

DECLARE @ GEOMETRY='MULTIPOINT((3 3),(7 3))',
@l GEOMETRY='CIRCULARSTRING(3 6,3.3 9,3 12,2.7 9,3 6)',@r GEOMETRY
SET @=@.STBuffer(.6)SET @r=@l.STUnion('CIRCULARSTRING(7 6,7.3 9,7 12,6.7 9,7 6)')
SELECT*FROM(VALUES(@),(@),(@),(@r.STBuffer(.3)),(@),(@),(@),(@),(@),(@),(@),(@),(@),
(@),(@),('CIRCULARSTRING(7 0,6 -1,5 0,5 1,5 1,5 0,5 0,4 -1,3 0)'),
(GEOMETRY::Point(5,1,0).STBuffer(5).STUnion(@r.STBuffer(1.3)).STDifference(@.STBuffer(.4)))
)a(g)

¡Este sitio podría usar más dibujos basados ​​en T-SQL!

Se ejecuta en SQL 2017, pero utiliza características de almacenamiento geoespacial de SQL agregadas en SQL 2008 . Los saltos de línea son solo para legibilidad.

Salida:

ingrese la descripción de la imagen aquí

Por lo tanto, esto fue difícil de hacer en T-SQL, ya que los objetos espaciales no están diseñados exactamente para dibujar (no hay objetos "elipse", por ejemplo). Aún más, obtener los colores incluso cerca de la derecha requiere un poco de prueba y error.

Básicamente estoy construyendo los siguientes objetos geométricos:

  1. Los ojos ( @), que son puntos expandidos en discos usando STBuffer(.6)(el conjunto de todos los puntos dentro de 0.6 de esos puntos de inicio)
  2. Las orejas ( @r), que se generan como curvas puntiagudas, pero se "hinchan" utilizando STBufferlas orejas internas o externas
  3. La cara, que es un disco más las orejas menos los ojos. Tengo que construir esto y mostrarlo como un solo objeto, o SQL lo mostrará en diferentes colores.
  4. La boca, que es una curva creada usando CIRCULARSTRING

Para obtener los colores correctos, tengo que SELECTestos en el orden correcto . SSMS tiene una secuencia de colores incorporada para los objetos que se muestran en el panel de resultados espaciales , por lo que los oídos internos de color rosa oscuro tuvieron que llegar al cuarto lugar y la cara de color rosa claro al 16 ° . Esto requirió poner un montón de copias adicionales de los ojos, lo cual está bien ya que los queremos lo más cerca posible del negro (los colores son algo transparentes, por lo que apilarlos los hace más oscuros).

Ayuda e inspiración de los siguientes recursos:

EDITAR : movió el conejito hacia abajo en 4 unidades, lo que cambia algunas coordenadas a un solo dígito, ahorrando 6 bytes. No hay cambios en la salida mostrada.


1
¡Construir un conejo con objetos de geometría, genial! xD
Kevin Cruijssen

9

Rojo , 375 340 329 bytes

Red[needs 'View]f: 'fill-pen p: 'pen e: 'ellipse c: 'circle
t:[5x5 0 180]view[base 200x200 #FFF draw
compose[(p)pink(f)pink(c)100x100 30(e)75x25
20x60(e)105x25 20x60(p)#E28(f)#E28(e)79x35 12x35(e)109x35
12x35(p)#FFF(f)#FFF(c)88x92 8(c)112x92 8(p)#000(f)#000(c)88x92
5(c)112x92 5 line 100x108 100x115 arc 95x115(t)arc 105x115(t)]]

ingrese la descripción de la imagen aquí


7

Desmos, 262 caracteres / bytes

Quiero decir, es más corto que Java: ^)

+2 bytes para completar los oídos

// Face
x^2+y^2<=4 

// Ears (outer)
(x+1)^2+((y-3)^2)/4<=.5
(x-1)^2+((y-3)^2)/4<=.5

// Ears (inner)
(x+1)^2+((y-3)^2)/4<=.25
(x-1)^2+((y-3)^2)/4<=.25

// Pupils
(x+.7)^2+(y-.7)^2<=.1
(x-.7)^2+(y-.7)^2<=.1

// "Whites"
(x-.7)^2+(y-.7)^2<=.3
(x+.7)^2+(y-.7)^2<=.3

// Mouth
y+1=-{y<1:sqrt(.1-(x+.316)^2)}
y+1=-{y<1:sqrt(.1-(x-.316)^2)}
x={-1<y<-.5:0}

Enlace con las líneas del gráfico deshabilitadas (me acabo de dar cuenta de que puedes hacer esto)

Bunneh

Bunneh


¡Me encanta esta respuesta! Aunque, si puedo ser pedante. El oído externo debe ser del mismo color que la cara. El interior debería ser más oscuro. Además, ¿se incluyen los comentarios en su recuento de char? Podrías afeitarte un poco allí.
AJFaraday

1
Los comentarios no están incluidos @AJFaraday. Desmos no tiene una manera de hacer que las cosas sean "más oscuras" o "más claras" que no sea apilar más ecuaciones en la misma ubicación (el oído externo es del mismo color que la cara por cierto).
Benjamin Urquhart

¿Es correcto que no se usen bytes al seleccionar colores? Se siente un poco injusto ...?
Stewie Griffin

@StewieGriffin No estoy seguro de cómo contar los colores. Tal vez abriré / encontraré una meta publicación en él.
Benjamin Urquhart


6

Ruby with Shoes , 240 caracteres.

Shoes.app{['fcc',[0,40,60],[5,0,20,50],[35,0,20,50],'f99',[t=10,t,t,h=30],[40,t,t,h],'fff',[t,55,15],[35,55,15],'000',[14,58,7],[38,58,7]].map{|v|stroke fill v rescue oval *v}
nofill
line h,75,h,80
arc 25,80,t,t,0,3.14
arc 35,80,t,t,0,3.14}

Salida de muestra:

Captura de pantalla de la ventana de zapatos con conejito de pascua


6

Python, 368 bytes

Usando matplotlib.

from matplotlib import pyplot as l,patches as p,transforms as t;z=0,;[l.gca().add_patch(p.Wedge(z*2,R,s,360,width=w,color=(r,o,o),transform=t.Affine2D.from_values(X,0,0,9,350+x*n,y*9)))for R,s,w,r,o,X,x,y in zip([11,7,15,4,2,2,99],z*5+(180,359),[None]*5+[.2,.4],(1,)*4+z*3,(.8,.6,.8,1)+z*3,[4,4]+[9]*5,[7,7,0,6,6,2,98.8],[51,51,30,35,35,24,26])for n in[-9,9]];l.show()

Resultado: ingrese la descripción de la imagen aquí

Sin golf:

from matplotlib import pyplot, patches, transforms
z = 0, # store zero as a tuple for later repetition
for radius, startAngle, width, red, other, xStretch, x, y in \
    zip([11 ,7  ,15 ,4  ,2  ,2  ,99   ],  # radius
        z * 5 +             (180,359  ),  # start angle
        [None] * 5 +        [.2 ,.4   ],  # wedge width (None = full)
        (1,) * 4        +z * 3         ,  # red channel
        (.8 ,.6 ,.8 ,1) +z * 3         ,  # other color channels
        [4]*2 + [9]*5                  ,  # x stretch factor
        [ 7 ,7  ,0  ,6  ,6  ,2  ,98.8 ],  # x
        [51 ,51 ,30 ,35 ,35 ,24 ,26   ]): # y
#        |   |   |   |   |   |   |
#        |   |   |   |   |   |   "straight" line for upper mouth
#        |   |   |   |   |   |   approximated by large radius arc
#        |   |   |   |   |   |
#        |   |   |   |   |   Arc for lower mouth
#        |   |   |   |   |
#        |   |   |   |   Inner eye circle
#        |   |   |   |
#        |   |   |   Outer eye circle
#        |   |   |
#        |   |   Circle for head
#        |   |
#        |   Inner ear ellipse
#        |
#        Outer ear ellipse

    for n in [-9, 9]:        # draw left and right side mirrored
        pyplot.gca().add_patch( patches.Wedge(
            z*2,       # center = (0, 0), actual location set by the transform below
            radius,
            startAngle,
            360,       # end angle
            width = width,
            color = (red, other, other), # only red channel varies from the others
            transform = transforms.Affine2D.from_values( # affine transform matrix
                xStretch,    # x stretch factor
                0, 0,        # unused cross-axis coefficients for skew/rotation
                9,           # y stretch factor
                x * n + 350, # x value reflected by n, centered at 350
                y * 9 )))    # y value

pyplot.show()

5

Javascript, 381 326 bytes

Gracias Arnold y Epicness.

(d=document).body.appendChild(a=d.createElement`canvas`);b=a.getContext`2d`;'A707|A7,/|Z707|Z7,/|MZAA|CR--|UR--|CR**|UR**|Id**|Nd**|La(+'.split`|`.map(x=>x.split``.map(c=>c.charCodeAt()-40)).map((x,i)=>b[b.beginPath(b.fillStyle='#'+'fccf77fff000'.substr('030306699'[i],3)),b.ellipse(...x,0,0,3*-~(i<9)),i>8?'stroke':'fill']())



1
Recientemente envié una edición para -6.
Epicness

Si está dispuesto a cambiar su respuesta HTML+JavaScript, puede hacer que la parte HTML <canvas id=A>y la primera parte del JS b=A.getContext...lo use en mi Bandera de Islandia hace algún tiempo. Esta publicación acaba de guardar esa respuesta 2 bytes :) codegolf.stackexchange.com/a/176852/8340
dana

Como beneficio adicional, puede incrustar un "fragmento de pila" :) stackoverflow.blog/2014/09/16/…
dana

1
Puede guardar 3 bytes más con (D=document).body.appendChild(a=D.createElement`canvas`).
Arnauld

4

JavaScript + P5.js , 291 276 273 bytes

Esta vez hay muchos pequeños cambios ... que no cambian el tamaño del byte en absoluto.

setup=_=>{createCanvas(u=400,u);(e=ellipse,f=fill)`#fcc`;e(u/=2,u,x=150,x);e(x+=10,z=99,50,z);e(w=240,z,50,z);f`#f77`;e(x,z,y=30,80);e(w,z,y,80);f``;e(w,v=180,y,y);e(x,v,y,y);f(0);e(w,v,y=9,y);e(x,v,y,y);noFill(line(u,225,u,250));arc(195,...a=[245,y,y,0,PI]);arc(205,...a)}

Pruébalo en línea!

Explicación:

setup = _ => { 
    createCanvas(u=400, u);                 // Create basic canvas.
    (e = ellipse, f = fill)`#fcc`;          // Light pink
    e(u /= 2, u, 150, 150);                 // These first few lines end up defining short-hand names for functions.
    e(x += 10, z = 99, 50, z);              // Throughout the code, you will see
    e(w = 240, z, 50, z);                   // lots of variable definitions.
    f`#f77`;                                // Dark pink
    e(x, z, y = 30, 80);                    // Another variable declaration
    e(w, z, y, 80);
    f``;                                    // Empty fill argument = white, apparently? (Eyes start here)
    e(w, v = 180, y, y);                    // I'll just stop commenting on declarations now
    e(x, v, y, y);
    f(0);                                   // fill(x) = fill(x, x, x)
    e(w, v, y = 9, y);
    e(x, v, y, y);
    noFill(line(u, 225, u, 250));           // Last part of bunny starts here.
                                            // Get rid of fill so the bunny doesn't look bad
    arc(195, ...a= [245, y, y, 0, PI]);
    arc(205, ...a)                          // arc() creates something similar to a semi-circle.
}

Puedes usar #fccy #f77para los colores.
ovs

Bueno ... no he encontrado nuevos bytes desde entonces. ¿Es seguro decir que he optimizado demasiado esto?
Epicness

4

Lua + LÖVE / Love2D , 328 bytes

l=love g=l.graphics c=g.setColor e=g.ellipse a=g.arc f="fill" k="line" o="open"function l.draw()c(1,.7,.7)e(f,50,82,40,40)e(f,30,28,10,25)e(f,70,28,10,25)c(1,.4,.4)e(f,30,28,5,18)e(f,70,28,5,18)c(1,1,1)e(f,35,73,8,8)e(f,65,73,8,8)c(0,0,0)g[k](49,90,49,99)a(k,o,45,96,5,.5,2.7)a(k,o,53,96,5,.5,2.7)e(f,35,73,4,4)e(f,65,73,4,4)end

Pruébalo en línea!

ingrese la descripción de la imagen aquí


4

Procesamiento, 388 343 319 carbones de leña / bytes

No muy elegante, pero aquí está. Bytes guardados al hacer la imagen más pequeña.

int b=50,c=60,g=70;
noStroke();
//Face
fill(#FFCCCC);
ellipse(b,g,c,c);
//Outer ears
ellipse(40,25,15,b);
ellipse(c,25,15,b);
//Inner ears
fill(#FF9999);
ellipse(40,25,7,30);
ellipse(c,25,7,30);
//Outer eyes
fill(-1);
ellipse(40,g,10,10);
ellipse(c,g,10,10);
//Inner eyes
fill(0);
ellipse(40,g,5,5);
ellipse(c,g,5,5);
//Mouth
stroke(0);
line(b,80,b,85);
noFill();
arc(53,85,5,5,0,PI);
arc(48,85,5,5,0,PI);

ingrese la descripción de la imagen aquí





@Zylviij Usó algunas de las ideas que tenía y lo redujo a 343 caracteres. No creo que pueda asignar funciones a variables en Processing.
Robert S.

No he utilizado alguna vez personalmente o procesamiento descargado, pero lo hice prueba de mis guiones aquí y trabajado sin producir errores en la imagen o la consola
Zylviij

4

PostScript , 688 484 468 439 bytes

Versión de golf:

80 60 translate 5 5 scale .2 setlinewidth 1 .7 .7 setrgbcolor 0 0 10 0 360 arc closepath fill /h {7 15 moveto 7 25 1 25 1 15 curveto 1 5 7 5 7 15 curveto closepath fill 1 .5 .5 setrgbcolor 6 15 moveto 6 22 2 22 2 15 curveto 2 8 6 8 6 15 curveto closepath fill 1 setgray 4 3 2 0 360 arc closepath fill 0 setgray 4 3 1 0 360 arc closepath fill 0 -3 moveto 0 -5 lineto stroke 1 -5 1 180 0 arc stroke}def gsave h grestore -1 1 scale h showpage

Versión sin golf:

80 60 translate                                     % over-all shift
5 5 scale                                           % over-all scale
.2 setlinewidth
1 .7 .7 setrgbcolor                                 % light pink
0 0 10 0 360 arc closepath fill                     % large circle for head
/h {                                                % procedure for drawing one half
  7 15 moveto 7 25 1 25 1 15 curveto                % ellipse for outer ear
              1  5 7  5 7 15 curveto closepath fill
  1 .5 .5 setrgbcolor                               % dark pink
  6 15 moveto 6 22 2 22 2 15 curveto                % ellipse for inner ear
              2  8 6  8 6 15 curveto closepath fill
  1 setgray                                         % white
  4 3 2 0 360 arc closepath fill                    % circle for outer eye
  0 setgray                                         % black
  4 3 1 0 360 arc closepath fill                    % circle for inner eye
  0 -3 moveto 0 -5 lineto stroke                    % line for upper mouth
  1 -5 1 180 0 arc stroke                           % arc for lower mouth
} def
gsave h grestore                                    % right half
-1 1 scale h                                        % left half
showpage

Resultado:

conejito


3

SVG (HTML5), 415 bytes

<svg width=48 height=80><g fill=#fdd><circle cx=24 cy=52 r=24 /><ellipse cx=12 cy=16 rx=8 ry=16 /><ellipse cx=36 cy=16 rx=8 ry=16 /></g><g fill=#f99><ellipse cx=12 cy=16 rx=4 ry=12 /><ellipse cx=36 cy=16 rx=4 ry=12 /></g><g fill=#fff><circle cx=16 cy=44 r=6 /><circle cx=32 cy=44 r=6 /></g><circle cx=16 cy=44 r=3 /><circle cx=32 cy=44 r=3 /><path stroke=#000 fill=none d=M18,60a3,3,180,0,0,6,0v-6v6a3,3,180,0,0,6,0

Mantener la altura por debajo de 100 para ayudar a ahorrar preciosos bytes, pero sigue siendo el más largo ...


3

Java, 508 472 bytes

import java.awt.*;v->new Frame(){Graphics2D G;Color C;void d(int...d){G.fillOval(d[0],d[1],d[2],d[3]);}{add(new Panel(){public void paint(Graphics g){G=(Graphics2D)g;G.setPaint(C.PINK);d(0,65,99,99);d(22,0,24,75);d(58,0,24,75);G.setPaint(C.MAGENTA);d(27,5,14,65);d(63,5,14,65);G.setPaint(C.WHITE);d(24,85,20,20);d(60,85,20,20);G.setPaint(C.BLACK);d(30,91,8,8);d(66,91,8,8);G.drawArc(41,124,9,11,0,-180);G.drawArc(50,124,9,11,0,-180);G.drawLine(50,119,50,130);}});show();}}

Este es el conejito resultante:
ingrese la descripción de la imagen aquí

Explicación:

import java.awt.*;              // Required imports for almost everything
v->                             // Method with empty unused parameter and no return-type
  new Frame(){                  //  Create a new Frame
    Graphics2D G;               //   Graphics2D-object on class-level
    Color C;                    //   Color variable to save bytes with static calls
    void d(int...d){            //   Create an inner method with integer-varargs as parameter
      G.fillOval(               //    Draw a circle/oval, filled with the current color:
        d[0],d[1],              //     With the first two integers as starting x,y position
        d[2],                   //     Third as width
        d[3]));}                //     And fourth as height
    {                           //   Then open an initializer-block inside the Frame-class
     add(new Panel(){           //    And add a Panel to the Frame we can draw on
       public void paint(Graphics g){
                                //     Override the Panel's paint-method
         G=(Graphics2D)g;       //      Set the Graphics2D-object with the parameter
         G.setPaint(C.PINK);    //      Set the color to pink (255,175,175)
         d(0,65,99,99);         //      Draw the head circle
         d(22,0,24,75);         //      Draw the left ear
         d(58,0,24,75);         //      Draw the right ear
         G.setPaint(C.MAGENTA); //      Change the color to magenta (255,0,255)
         d(27,5,14,65);         //      Draw the inner part of the left ear
         d(63,5,14,65);         //      Draw the inner part of the right ear
         G.setPaint(C.WHITE);   //      Change the color to white (255,255,255)
         d(24,85,20,20);        //      Draw the left eye
         d(60,85,20,20);        //      Draw the right eye
         G.setPaint(C.BLACK);   //      Change the color to black (0,0,0)
         d(30,91,8,8);          //      Draw the left pupil
         d(66,91,8,8);          //      Draw the right pupil
         G.drawArc(41,124,9,11,0,-180);
                                //      Draw the left mouth elipse
         G.drawArc(50,124,9,11,0,-180);
                                //      Draw the right mouth elipse
         G.drawLine(50,119,50,130);}});
                                //      Draw the line of the mouth
    show();}}                   //    And finally show the Frame on the screen

3

HTML , 280 278 bytes

a{color:#FFC8C8;}b{color:#FF7F7F;font-size:6px;margin-left:-10px;}m,n,j,d{display:block;}m{margin:-15px -3px;font-size:40px;}n{margin:-35px 5px;color:#FFF;font-size:15px;}j{margin:-14px 1px;color:#000;font-size:10px;}
<a><b></b><a><b></b><m><n>● ●<j>●‌‌ ‌‌ ‌‌ ●<d>‌‌ ‌‌ ‌‌ w

Aquí hay una captura de pantalla:

ingrese la descripción de la imagen aquí

Citas


0

HTML + CSS

ingrese la descripción de la imagen aquí


.bunny {
  width: 107px;
  position: relative;
  z-index: 1;
  margin-top: 26px;
  margin-left: 37px;
}
.bunny .ears {
  display: flex;
  width: 100%;
  justify-content: center;
}
.bunny .ears .ear {
  width: 16px;
  height: 49px;
  background: #ff7f7e;
  border-radius: 100%;
  border: 7px solid #ffc8c8;
}
.bunny .ears .ear.left {
  margin-right: 8px;
}
.bunny .ears .ear.right {
  margin-left: 8px;
}
.bunny .face {
  width: 107px;
  background: #ffc8c8;
  border-radius: 100%;
  height: 107px;
  margin-top: -8px;
}
.bunny .face .eyes {
  justify-content: center;
  display: flex;
}
.bunny .face .eyes .eye {
  width: 9px;
  height: 9px;
  background: #000;
  border-radius: 100%;
  margin-top: 28px;
  border: 4px solid #fff;
}
.bunny .face .eyes .eye.left {
  margin-right: 12px;
}
.bunny .face .eyes .eye.right {
  margin-left: 12px;
}
.bunny .face .mouth-thing {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-top: 18px;
  margin-right: 2px;
}
.bunny .face .mouth-thing .v-rule {
  height: 12px;
  width: 2px;
  background: #000;
}
.bunny .face .mouth-thing .jowls {
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.bunny .face .mouth-thing .jowls .jowl {
  margin-top: -5px;
  border-radius: 100%;
  border: 2px solid #000;
  height: 9px;
  width: 9px;
}
  <div class="ears">
    <div class="ear left"></div>
    <div class="ear right"></div>
  </div>
  <div class="face">
    <div class="eyes">
      <div class="eye left"></div>
      <div class="eye right"></div>
    </div>
    <div class="mouth-thing">
      <div class="v-rule"></div>
      <div class="jowls">
        <div class="jowl"></div>
        <div class="jowl"></div>
      </div>
    </div>
  </div>
</div>

2
Bienvenido a PPCG! Dado que esto está etiquetado como code-golf, lo que significa que las presentaciones deben apuntar a minimizar su recuento de bytes, requerimos envíos de code-golf para hacer un intento serio de reducir su recuento de bytes, como reducir espacios en blanco, acortar nombres de variables, etc. Espero que disfrute ¡su estancia!
Encarnación de la ignorancia

1
También debe incluir su bytecount en el encabezado
Jo King
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.