더 쉬운 의사 소통 수단… ○ 순환 판!


12

을 바탕으로 있지만, 내가 질문을 받았다 [1] , [2] 그래픽 버전을 할 수 있습니다.

보다 쉬운 통신 수단 더 빠른 코딩 수단 더 적은 코더 수단…

직무

텍스트의 원형 표시를 생성합니다 EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS . 모든 대문자 글꼴이 사용됩니다. 문자 상단은 원을 향해야합니다. 이전의 공간 FEWER은 맨 아래 (6시) 또는 (브라우니 포인트의 경우) 텍스트가 회전해야합니다.


@Uriel 글쎄, 명목상, 각 문자는 5.45 °를 사용하므로 5.4 °에서 5.5 °로 말할까요?
Adám

2/21근사 오차가 0.002보다 작다는 것을 고려하면 좋은 정밀도라고 생각합니다 .
Uriel

답변:


7

수학, 153 바이트

x=Pi/33;Graphics@Map[StringSplit["CATION MEANS FASTER CODING MEANS FEWER CODERS MEANS EASIER COMMUNI",""][[#/x]]~Text~{Sin@#,Cos@#}~Rotate~-#&,Range@66x]

여기에 이미지 설명을 입력하십시오

178 바이트로 늘리면 회전 할 수 있습니다.

x=Pi/33;Graphics@Map[StringSplit["CATION MEANS FASTER CODING MEANS FEWER CODERS MEANS EASIER COMMUNI",""][[#/x-a]]~Text~{Sin@#,Cos@#}~Rotate~-#&,(a+Range@66)x]~Animate~{a,1,66,1}

여기에 이미지 설명을 입력하십시오


7

HTML과 JS, 13 + 170 = 284 227 192 186 183 바이트

@Shaggy 덕분에 41 바이트 절약

(x=c.getContext("2d")).translate(r=c.height/2,r)
for(i in t="CATION MEANS FASTER CODING MEANS FEWER CODERS MEANS EASIER COMMUNI"){x.rotate(2/21);x.fillText(t[i],0,-r*.8)}
<canvas id=c height=250 width=250>

더 나은 가시성을 위해 250으로 설정된 너비와 높이는 바이트 수에 포함되지 않았습니다.


로 JS를 223 바이트로 줄입니다 (x=c.getContext("2d"))[t="translate"](r=c.height/2,r,i=66);r*=.8;while(i--){x.rotate(a=i*Math.PI/33);x[t](0,-r);x.fillText("EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "[i],0,0);x[t](0,r);x.rotate(-a)}.
Shaggy

또는(x=c.getContext("2d")).translate(r=c.height/2,r);r*=.8;for(i in t="EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "){x.rotate(Math.PI/33);x.fillText(t[i],0,-r)}
Shaggy

당신은 정밀도의 약간 희생 행복해서, 당신은 대체 할 수 Math.PI22/7다른 6 바이트를 저장합니다.
얽히고 설킨

그리고 Math.PI/332/21이지만 괜찮은 것으로 간주됩니까?
Uriel

1
당신은 ES6를 사용하여 일부 바이트를 저장할 수 있습니다 for...of: for(c of"CATION...x.fillText(c,
브라이언 McCutchon에게

6

옥타브, 168 바이트

for i=1:(n=nnz(s='CATION MEANS FASTER CODING MEANS FEWER CODERS MEANS EASIER COMMUNI')),text(sin(i/n*2*pi),cos(i/n*2*pi),s(i),'rotation',-i/n*360);axis([-2,2,-2,2]);end

여기 사용해보십시오


좋은! axis([-2,2,-2,2]);필요하지 않은 것 같습니다 . 그러나 당신은 axis equal진정한 원을 얻기 위해 끝에 추가하고 싶을 수도 있습니다
Luis Mendo

for 루프로 무엇을합니까? 나와 같은 옥타브 초보자에 대한 설명을 추가 할 수 있습니까?
Michthan

물론 시간이있을 때 설명을 추가하겠습니다. 잘만되면 오늘 오늘 :-)
Stewie Griffin

4

Bash + ImageMagick, 168 바이트

convert -font $(convert -list font|grep Font:|head -n1|cut -d" " -f4) label:"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS " -distort Arc 360 i.png

출력 예 :

출력 예


1
고정 글꼴 이름을 사용하여 단축 할 수 있다고 생각합니다.
dkudriavtsev

4

BBC 베이직, 248

http://www.bbcbasic.co.uk/bbcwin/download.html 에서 통역사 다운로드

F.i=6TO767a=i DIV6*.024-.3r=(80+i MOD6)MOD83*9-369IFASC(M."?[O@Wo}@b}O@O|O@y?l@xHH@GGE@zmo@yo|@}oU@o?m@?L|@phh@GEE@?u?@?{o@Wk?@?I?@g|O@EGE@?]M@z}o@|_|@}?m@?MO@GDG@xhh@?k?@?oU@z}o@?LO@a?L",i DIV6))>>i MOD6A.1CIRCLEFILL500-r*COS(a),500+r*SIN(a),9
N.

언 골프

  FORi=6TO767
    a=i DIV 6 * .024 - .3
    r=(80 + i MOD 6) MOD 83 * 9 - 369            :REM iterate through ({80,81,82,0,1,2} - 41 = {39,40,41,-41,-40,-39}) * 9
    IF ASC(MID$("?[O@Wo}@b}O@O|O@y?l@xHH@GGE@zmo@yo|@}oU@o?m@?L|@phh@GEE@?u?@?{o@Wk?@?I?@g|O@EGE@?]M@z}o@|_|@}?m@?MO@GDG@xhh@?k?@?oU@z}o@?LO@a?L",i DIV6))>>i MOD6AND1    THEN
      CIRCLEFILL 500-r*COS(a), 500+r*SIN(a), 9   :REM dots are circle radius 9 according to documentation (but BBC BASIC actually draws them smaller.)
    ENDIF
  NEXT

회전 된 텍스트를 지원하지 않는 언어로이 작업을 수행하면 재미가 있습니다. 각 문자는 3x3 도트 매트릭스 배열입니다. 총 66 문자가 있지만 인쇄하지 않는 두 개의 대각선 반대쪽 공백이 있습니다 (CODERS 이후 및 FASTER 앞). 편지. 이런 식으로 우리는 180 도만 스윕하면됩니다.

여기에 이미지 설명을 입력하십시오


영리하지만 바이트 당 4 픽셀의 높은 문자를 사용할 수 있어야합니다. 또한 텍스트는 시계 반대 방향으로 5 자 회전해야합니다.
Adám

@ Adám은 코드에 인쇄 할 수없는 요소가 많이 포함되어 있기 때문에 4 픽셀을 높이기가 어렵습니다. 나는 통역사가 그것을 좋아할 것이라고 생각하지 않습니다. 회전 사양을 잘못 해석하거나 잘못 기억했습니다. ( MEANS이미 바닥에 있었고 잘못된 방향으로 회전했습니다) +.2-.3편집 으로 변경해야합니다 .
Level River St

OP가 대문자를 지정하기 때문에 A를 as로 , R을 ⠸⠫하시겠습니까 ?
Adám

@Adam은 현재 많은 추가 작업을 수행하고 있으며 가독성이 떨어질 것이라고 생각합니다. 특정 대문자가 소문자와 비슷한 것으로 대체되는 것은 arty 및 calculator 글꼴에서 일반적입니다. 나중에 어떻게 보일지 살펴 보겠습니다.
Level River St

3

SVG (HTML5), 212 바이트

<svg width=500 height=500><defs><path id=p d=M250,451a201,201,0,0,1,0,-402a201,201,0,0,1,0,402></defs><text font-size="32"><textPath xlink:href=#p>FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS

내 대답의 정적 버전 빠른 수단을 적은 코더 수단을 코딩 쉽게 통신 수단 ... 그래서 불통은 FEWER맨 아래에 있습니다. 글꼴이 내 것과 맞지 않을 경우 조정 가능한 버전 :

<p><input type=number value=0 min=0 max=9 oninput=p.setAttribute('d','M250,250m0,20_a20_,20_,0,1,1,20_,-20_a20_,20_,0,1,1,-20_,-20_a20_,20_,0,1,1,-20_,20_a20_,20_,0,1,1,20_,20_'.replace(/_/g,this.value))></p>
<svg width=500 height=500><defs><path id=p d=M250,250m0,200a200,200,0,1,1,200,-200a200,200,0,1,1,-200,-200a200,200,0,1,1,-200,200a200,200,0,1,1,200,200></defs><text font-size="32"><textPath xlink:href=#p>FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS


당신은 어떻게 사이의 간격 조절 않는 위한 수단적은 수는 ? 내 브라우저에서는 한 단어처럼 읽습니다.
Adám

@ Adám 조정 가능한 버전을 가로 질러 포팅했습니다.
Neil

좋은. 그것은 계속되고 있습니다.
Adám

2

포스트 스크립트 (127 바이트)

육각 덤프 :

00000000: 2f53 2031 92a5 9233 2f4d 6f6e 6f20 3992  /S 1...3/Mono 9.
00000010: 8e88 6432 3030 926b 3292 9a28 4943 4154  ..d200.k2..(ICAT
00000020: 494f 4e20 4d45 414e 5320 4641 5354 4552  ION MEANS FASTER
00000030: 2043 4f44 494e 4720 4d45 414e 5320 4645   CODING MEANS FE
00000040: 5745 5220 434f 4445 5253 204d 4541 4e53  WER CODERS MEANS
00000050: 2045 4153 4945 5220 434f 4d4d 554e 297b   EASIER COMMUN){
00000060: 5388 0033 2032 9287 9278 5320 6661 6c73  S..3 2...xS fals
00000070: 6592 112d 352e 3435 9288 7d92 4992 a7    e..-5.45..}.I..

Ungolfed (텍스트) 버전 :

/S 1 string def
/Mono 9 selectfont
100 200 moveto
2 setlinejoin
(ICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS EASIER COMMUN)
{S 0 3 2 roll put S false charpath -5.45 rotate} forall
stroke

샘플 출력 :

여기에 이미지 설명을 입력하십시오


2

자바 8, 1,087 바이트

import javafx.animation.*;import javafx.application.*;import javafx.scene.*;import javafx.scene.layout.*;import javafx.scene.shape.*;import javafx.scene.text.*;import javafx.stage.*;import javafx.util.*;import java.util.*;import static javafx.animation.PathTransition.*;public class P extends Application{@Override public void start(Stage stage)throws Error{char[] t="EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS".toCharArray();Shape q=new Circle(400,400,120);List<Text>h=new ArrayList<>();List<Transition>z=new ArrayList<>();for(char c:t){Text o=new Text(c+"");h.add(o);z.add(x(q, o));}Pane p=new Pane();p.getChildren().addAll(h);int s=h.size();for(int i=0;i<s;i++){Transition w=z.get(i);w.jumpTo(Duration.seconds(10).multiply((i+.5)*1/s));w.play();}stage.setScene(new Scene(p,800,800));stage.show();}Transition x(Shape e,Text t){PathTransition v=new PathTransition(Duration.seconds(10),e,t);v.setCycleCount(INDEFINITE);v.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);v.setInterpolator(Interpolator.LINEAR);return v;}static void main(String[]a){launch(a);}}

스크린 샷


근데 MEANS와 EASIER COM 사이에 공백이없는 것 같습니다.
Adám

@ Adám : 6시 규칙에 FEWER를 준수하지 않습니다!
sergiol

0

LaTeX + TikZ, 380 바이트

\documentclass[tikz,border=20pt]{standalone}\usetikzlibrary{decorations,decorations.text,}\begin{document}\begin{tikzpicture}\draw[color=white,rotate=-90,postaction={decorate,decoration={text along path,raise=4pt,text align={align=center},text={FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS },reverse path}}](0,0)circle(2.425cm);\end{tikzpicture}\end{document}

출력 예

여기에 이미지 설명을 입력하십시오


0

Tcl / Tk, 222

grid [canvas .c]
set i 90;lmap c [split "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS" ""] {.c cr t [expr {93*cos([set i [expr $i+5.5]]/57.3)+99}] [expr {93*sin($i/57.3)+99}] -te $c -ang [expr -$i-90]}

여기에 이미지 설명을 입력하십시오

나중에 더 골프를 할 것인가!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.