如何将圆的边缘对齐?

如何将圆的边缘对齐?盒子的边缘是对齐的,但我的圆的周长/边缘不是对齐的,而是彼此占用空间。

local areaPadding = 5
local topPadding = 160
local answerOffset = 6
local area = answer_rect.width - (areaPadding*-5)
local answerHeight = (area-topPadding-(answerOffset*#q.answers))/#q.answers
local textX = numberX + 20
local textW = _W - textX - 24

local y = answer_rect.x + areaPadding + topPadding
local howManyAnswers = #q.answers

-- 如果有必要,确保答案适合屏幕大小,可以减小answerHeight的值 local offset = (_W - (howManyAnswers * (answerHeight+answerOffset) - answerOffset)) * 0.5

for i=1, howManyAnswers do
    local rect = display.newCircle(quizGroup, offset + (answerHeight+answerOffset)*(i-1), y, answerHeight, answerHeight )
    rect.anchorX, rect.anchorY = 0, 0
    rect.id = "answer"
    rect.index = i
    rect:setFillColor(0.1)
    rect:addEventListener("touch", buttonTouched)

    local answer = display.newText({parent=quizGroup, text=q.answers[i], width=textW, height=0, font=native.systemFont, fontSize=150})
    answer.x = rect.x + rect.width * 0.3
    answer.y = rect.y + rect.height * 0.5
    answer.anchorX = 0
    answer:setFillColor(1)
end

end

在这里输入图片描述在这里输入图片描述

点赞
用户7026995
用户7026995

尝试

local _W = display.contentWidth -- 获取屏幕宽度
local _H = display.contentHeight -- 获取屏幕高度

local areaPadding = 12 -- 区域内边距
local topPadding = 16 -- 顶部内边距
local answerOffset = 30 -- 用于放置标签的间距
local area = answer_rect.height - (areaPadding*2.5) -- 答案区域的高度
local howManyAnswers = #q.answers  -- 获取答案数量
local textX = numberX + 20 -- 文本的横坐标
local textW = _W - textX - 24 -- 文本的宽度
local answerHeight = (area-topPadding-(answerOffset*#q.answers))/howManyAnswers -- 计算答案每列的高度
local y = answer_rect.x + areaPadding + topPadding -- 定位开始绘制答案区域的位置
-- 如果需要,确保答案适合屏幕大小并缩短答案高度
local offset = (_W - (howManyAnswers * (answerHeight+answerOffset))) * 0.5

for i=1, howManyAnswers do
  local rect = display.newRect(quizGroup, offset + answerOffset +(answerHeight+answerOffset)*(i-1), y, answerHeight, answerHeight) -- 在题目组中创建一个矩形
  rect.anchorX, rect.anchorY = 0, 0
  rect.id = "answer"
  rect.index = i
  rect:setFillColor(0.1)
  rect:addEventListener("touch", buttonTouched)

  local label = display.newText({parent=quizGroup, text=i..".", font=native.systemFont, fontSize=20}) -- 在题目组中创建标签
  label.x = rect.x - answerOffset * 0.5
  label.y = rect.y + 0.5 * rect.height
  label:setFillColor(0.4)

  local answer = display.newText({parent=quizGroup, text=q.answers[i], width=textW, height=0, font=native.systemFont, fontSize=150}) -- 在题目组中创建答案
  answer.x = rect.x + rect.width * 0.5
  answer.y = rect.y + rect.height * 0.5
  answer:setFillColor(1)
end
2016-11-11 12:57:59