V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hqs123
V2EX  ›  问与答

[Android 求助] 怎样在一个圆形里面画一个正方形?

  •  
  •   hqs123 · 2016-01-07 16:31:39 +08:00 · 3997 次点击
    这是一个创建于 3275 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,本人在学 android, 现在在用 paint 、 canvas 之类东西做些小例子,然后遇到了一个问题就是怎样在一个圆形里面画一个正方形,我在网上找不到类似代码啊,希望各位大神帮帮我,最好有源代码给出,多谢了!
    第 1 条附言  ·  2016-01-07 19:52:08 +08:00
    我写的例子中圆形是居中显示在手机设备上的,并且假设圆的半径是 100 个像素,要求画一个正方形且正方形四个顶点要在圆形上。
    14 条回复    2016-01-08 10:43:03 +08:00
    GaoMjun
        1
    GaoMjun  
       2016-01-07 17:36:42 +08:00 via Android
    画十字然后把交点连上?
    Comdex
        2
    Comdex  
       2016-01-07 19:09:19 +08:00
    用 xml 画。。。
    kifile
        3
    kifile  
       2016-01-07 19:16:21 +08:00
    能说使用 Canvas 画圆什么的根本不重要吗?
    kifile
        4
    kifile  
       2016-01-07 19:17:01 +08:00
    毕竟只是 canvas.drawCircle 和 canvas.drawRect 的区别的,所以关键是,你要知道画图的范围,这才是重要的
    Slienc7
        5
    Slienc7  
       2016-01-07 19:27:17 +08:00
    hqs123
        6
    hqs123  
    OP
       2016-01-07 19:43:05 +08:00
    @xgowex 大哥,我这个是 android 里面开发东西,你给我的是。。。。。。
    hqs123
        7
    hqs123  
    OP
       2016-01-07 19:45:09 +08:00
    @kifile 我这个是在给定的圆形里面画一个正方形,正方形四个边角的点要在这个圆上啊
    hqs123
        8
    hqs123  
    OP
       2016-01-07 19:45:53 +08:00
    @Comdex 要用到 canvas 写啊,不是在 xml 画
    hqs123
        9
    hqs123  
    OP
       2016-01-07 19:48:45 +08:00
    @kifile 比如我写的例子里面圆的半径是 100 个像素,这个圆位置是在显示设备的中央位置啊,那正方形应该怎么弄出来,感觉很难拿到坐标啊
    loveyu
        10
    loveyu  
       2016-01-07 20:48:40 +08:00 via Android
    正方形边长 141.4213562373 其他的自己算
    kifile
        11
    kifile  
       2016-01-07 21:55:01 +08:00   ❤️ 1
    @hqs123
    我们假定圆心坐标 x,y,半径 r ,那么可以使用 canvas 中心画圆, canvas.drawCircle(x,y,true,r,paint)(没看 api ,应该是这样子的)

    然后画正方形,每个边的一半长度为 l= r/1.414, canvas.drawRect(x-l,y-l,x+l,y+l,paint),
    hqs123
        12
    hqs123  
    OP
       2016-01-07 22:04:29 +08:00
    @kifile 好,我试试看看效果
    shakoon
        13
    shakoon  
       2016-01-08 09:21:51 +08:00
    这个事情说明学好中学数学是多么重要…… @1998qiu
    1998qiu
        14
    1998qiu  
       2016-01-08 10:43:03 +08:00 via Android
    @shakoon 确实挺重要的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6061 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1085ms · UTC 01:59 · PVG 09:59 · LAX 17:59 · JFK 20:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.