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

2016-01-07 16:31:39 +08:00
 hqs123
大家好,本人在学 android, 现在在用 paint 、 canvas 之类东西做些小例子,然后遇到了一个问题就是怎样在一个圆形里面画一个正方形,我在网上找不到类似代码啊,希望各位大神帮帮我,最好有源代码给出,多谢了!
3809 次点击
所在节点    问与答
14 条回复
GaoMjun
2016-01-07 17:36:42 +08:00
画十字然后把交点连上?
Comdex
2016-01-07 19:09:19 +08:00
用 xml 画。。。
kifile
2016-01-07 19:16:21 +08:00
能说使用 Canvas 画圆什么的根本不重要吗?
kifile
2016-01-07 19:17:01 +08:00
毕竟只是 canvas.drawCircle 和 canvas.drawRect 的区别的,所以关键是,你要知道画图的范围,这才是重要的
Slienc7
2016-01-07 19:27:17 +08:00
hqs123
2016-01-07 19:43:05 +08:00
@xgowex 大哥,我这个是 android 里面开发东西,你给我的是。。。。。。
hqs123
2016-01-07 19:45:09 +08:00
@kifile 我这个是在给定的圆形里面画一个正方形,正方形四个边角的点要在这个圆上啊
hqs123
2016-01-07 19:45:53 +08:00
@Comdex 要用到 canvas 写啊,不是在 xml 画
hqs123
2016-01-07 19:48:45 +08:00
@kifile 比如我写的例子里面圆的半径是 100 个像素,这个圆位置是在显示设备的中央位置啊,那正方形应该怎么弄出来,感觉很难拿到坐标啊
loveyu
2016-01-07 20:48:40 +08:00
正方形边长 141.4213562373 其他的自己算
kifile
2016-01-07 21:55:01 +08:00
@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
2016-01-07 22:04:29 +08:00
@kifile 好,我试试看看效果
shakoon
2016-01-08 09:21:51 +08:00
这个事情说明学好中学数学是多么重要…… @1998qiu
1998qiu
2016-01-08 10:43:03 +08:00
@shakoon 确实挺重要的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249071

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX