Hình chữ nhật bo góc có ở khắp mọi nơi
(folklore.org)- Vào thời QuickDraw cho Macintosh vẫn còn được gọi là LisaGraf, Bill Atkinson đã tạo ra các routine vẽ hình tròn và elip tốc độ cao, và Steve Jobs muốn mở rộng nó thành một dạng hữu ích hơn cho UI
- Khi đó, bộ xử lý 68000 không có dấu phẩy động, còn phép nhân và chia cũng chậm, nên Bill chọn cách xử lý phép tính hình tròn chỉ bằng phép cộng và phép trừ
- Bản demo elip chạy cực nhanh, nhưng Steve đã thuyết phục Bill bằng cách chỉ ra các ví dụ thực tế trong và ngoài căn phòng, nói rằng “hình chữ nhật bo góc có ở khắp mọi nơi”
- Ban đầu Bill cho rằng việc này không cần thiết và khó thực hiện, nhưng sau khi thấy một biển báo bo góc ông quyết định kiểm tra lại độ khó triển khai
- Bản demo xuất hiện vào ngày hôm sau chạy với tốc độ gần bằng hình chữ nhật thông thường, và RoundRects sau đó trở thành yếu tố đồ họa thiết yếu của UI Macintosh
Yêu cầu bắt đầu từ một routine elip tốc độ cao
- Bill Atkinson chủ yếu làm việc ở nhà, nhưng mỗi khi có tiến triển đáng kể ông lại chạy tới Texaco Towers, nơi đặt văn phòng Macintosh của Apple, để trình diễn
- Mục đích của chuyến ghé thăm lần này là trình diễn các oval routines mới tạo, và khi đó QuickDraw vẫn còn được gọi là LisaGraf
- Bill đã thêm đoạn mã vẽ hình tròn và elip cực nhanh, rồi cho thấy màn hình Lisa được lấp đầy bằng các elip có kích thước ngẫu nhiên
Giới hạn của 68000 và cách tính toán
- Việc vẽ hình tròn nhanh trên Macintosh khi đó không hề dễ vì các giới hạn phần cứng
- Tính toán hình tròn thường cần căn bậc hai
- Bộ xử lý 68000 của Lisa và Macintosh không hỗ trợ phép toán dấu phẩy động
- Phép nhân và phép chia trên 68000 cũng không nhanh
- Bill đã dùng cách xử lý chỉ với phép cộng và phép trừ, không cần phép nhân hay chia
- Cốt lõi là tính chất tổng của dãy số lẻ sẽ tạo thành số chính phương tiếp theo
- Ví dụ:
1 + 3 = 4 - Ví dụ:
1 + 3 + 5 = 9 - Ví dụ:
1 + 3 + 5 + 7 = 16
- Ví dụ:
- Dựa vào tính chất này, ông lặp cho tới khi vượt ngưỡng để quyết định khi nào cần tăng giá trị tọa độ phụ thuộc, và QuickDraw có thể vẽ elip rất nhanh
Yêu cầu về hình chữ nhật bo góc của Steve Jobs
- Khi bản demo của Bill chạy nhanh hơn nhiều so với kỳ vọng, Steve Jobs hỏi liệu có thể vẽ không chỉ hình tròn và elip mà cả hình chữ nhật bo góc hay không
- Bill trả lời rằng ông không có cách triển khai, việc đó sẽ rất khó, và thực ra cũng không cần thiết
- Steve nói “hình chữ nhật bo góc có ở khắp mọi nơi” rồi chỉ ngay các ví dụ trong phòng
- Bảng trắng
- Một số bàn làm việc và bàn khác
- Ông còn nói rằng nhìn ra ngoài cửa sổ thì gần như chỗ nào cũng thấy thêm nhiều ví dụ nữa
Những ví dụ trong thế giới thực đã thúc đẩy việc triển khai
- Steve thuyết phục Bill đi bộ một vòng quanh khu nhà trong chốc lát và chỉ cho ông từng hình chữ nhật bo góc dễ thấy
- Khi cả hai đi ngang qua một biển cấm đỗ xe bo góc, Bill đã đổi ý
- Bill trở về nhà làm việc và nói rằng ông sẽ kiểm tra xem nó có thực sự khó như ông nghĩ hay không
RoundRects trở thành yếu tố cơ bản của UI
- Chiều hôm sau Bill quay lại Texaco Towers với một bản demo mới, và các hình chữ nhật bo góc được vẽ đẹp mắt và cực nhanh
- Tốc độ gần như tương đương với tốc độ vẽ hình chữ nhật thông thường
- Khi thêm đoạn mã này vào LisaGraf, Bill đặt tên cho yếu tố đồ họa cơ bản mới là RoundRects
- Trong vài tháng sau đó, roundrects xuất hiện ở nhiều phần của giao diện người dùng và nhanh chóng trở thành một thành phần không thể thiếu
1 bình luận
Ý kiến trên Hacker News
Windows đã dùng góc bo tròn cho các nút từ bản 1.0 đến 3.11, rồi sau đó chuyển sang góc vuông cho đến UI theo theme của XP; đến XP thì lại hơi bo tròn, sang 8 lại vuông, rồi đến 11 lại bo tròn tiếp
https://user-images.githubusercontent.com/7389110/64139289-3...
Dù vậy tôi vẫn thích góc sắc hơn
Windows 10 cũng làm khá tốt, nhưng vấn đề là nó là một mớ hỗn độn, nhất là khi lục trong phần Settings, cứ như bước vào một thế giới nơi các paradigm UI hoàn toàn khác nhau đột nhiên nhảy ra và quấn lấy nhau
Lạ là tôi từng ở trong một khách sạn Đông Á, có lẽ chịu ảnh hưởng Tây Tạng, và nhớ là mọi góc trong phòng đều được bo tròn. Cảm giác đơn giản là tốt hơn và dễ chịu hơn. Ở phương Tây, nếu gọi thợ thủ công đến để bo tròn mọi góc trong phòng thì chắc sẽ cực kỳ đắt; làm bằng thạch cao thì được, nhưng khó mà bền hơn 10 năm và cũng không chắc làm tăng giá trị bán lại
Đồng thời nó cũng khiến tôi nhận ra mình thật sự chẳng quan tâm chút nào chuyện góc bo tròn hay góc vuông
Lập trình viên có thể dùng các bảng màu thiết kế như Solarized, vậy mà tôi không hiểu vì sao Microsoft lại áp đặt ý chí của mình, bắt mọi người lệ thuộc vào cùng một màu xanh tệ hại. Tôi ghét màu xanh đó vì chắc chắn đã có một cuộc trò chuyện kiểu doanh nghiệp như: “Vàng thì quá giống cảnh báo, cam thì quá mập mờ, đỏ thì quá giận dữ, tím thì quá nổi. Xanh dương là an toàn”
Tôi ghét việc widget hiện đại không có đổ bóng. Tôi hiểu là họ muốn trông hiện đại, nhưng nó chỉ khiến tôi thấy cực kỳ lười biếng
Cũng có thể thấy từ Windows Vista/7 trở đi, các nút đột nhiên to gần gấp đôi và khắp nơi xuất hiện khoảng trống và padding. Không gian bị UI lãng phí ngày càng lớn đến mức phi lý
Tôi đã thích câu chuyện này suốt mấy chục năm, nhưng điều nổi bật nhất với tôi lúc này là Bill Atkinson đã làm việc từ xa khi tạo ra Macintosh
https://news.ycombinator.com/item?id=19238322
Hình chữ nhật bo góc của Apple bây giờ chẳng phải là squircle sao?
https://medium.com/minimal-notes/rounded-corners-in-the-appl...
Các bài liên quan:
Round rectangles are everywhere - https://news.ycombinator.com/item?id=28679496 - tháng 9/2021, 26 bình luận
History of Rounded Corners - https://news.ycombinator.com/item?id=7062706 - tháng 1/2014, 1 bình luận
Steve Jobs and Rounded Corners - https://news.ycombinator.com/item?id=3096927 - tháng 10/2011, 1 bình luận
The story of round rectangles - https://news.ycombinator.com/item?id=1636358 - tháng 8/2010, 77 bình luận
Người ta đánh giá thấp việc gu thẩm mỹ của Steve Jobs xuất sắc đến mức nào, và cụm “khai phóng và công nghệ” thực sự chân thành ra sao
Dù vậy tôi đồng ý rằng mỗi lần những giai thoại kiểu này xuất hiện, tôi vẫn lại thấy kinh ngạc. Trong số rất nhiều người ái kỷ đang vận hành thế giới, có lẽ tôi sẽ nhớ về ông ấy với thiện cảm nhất
Một ví dụ về hình chữ nhật bo góc được thêm vào thuần túy vì lý do thẩm mỹ là cửa sổ desktop trên Mac ngày xưa. Khi màn hình bật lên trong lúc khởi động thì tất nhiên nó là hình chữ nhật, nhưng một trong những việc đầu tiên phần mềm làm là bo tròn các góc đó, và trạng thái ấy được giữ cho đến khi phần mềm khác chuyển sang toàn màn hình
Windows không có thứ như vậy, và rõ ràng đó là việc “vô dụng”, nhưng tôi thích chi tiết đó
Đoạn “trong vài tháng tiếp theo, hình chữ nhật bo góc đã thấm vào nhiều phần của giao diện người dùng, và chẳng mấy chốc trở thành thứ không thể thiếu” rốt cuộc cho thấy nó cũng chỉ là một trào lưu như những thiết kế khác. Rồi người ta chuyển sang các góc sắc và thiết kế phẳng, sau đó quay lại góc bo, rồi lại góc cạnh, rồi lại quay về
Có thể thấy vòng lặp địa ngục này diễn ra ngay trước mắt. Khoảng một năm trước, ai đó ở Chrome cũng có ý tưởng “làm mới thiết kế” đầy sáng tạo như các công ty lớn vẫn hay làm, và đột nhiên các tab được bo tròn, quanh thanh điều hướng xuất hiện những góc bo nhỏ
Các góc bo được căn đồng tâm cũng có thể truyền đạt rõ ràng quan hệ cha-con theo kiểu Gestalt
Khi Google làm các góc hình chữ nhật bo tròn hoàn toàn, họ cũng tăng thêm margin và padding. Nếu thiết kế có chất liệu lại thịnh hành, có lẽ lúc đó margin và padding cũng sẽ tăng thêm
Hack ROM Mac OS để tạo cửa sổ hoàn toàn hình tròn: https://web.archive.org/web/20201209143138/https://macgui.co...
Phần hack là tiêm đoạn mã đó vào Finder. Một cách là lưu WDEF trong file Desktop của đĩa mềm, và chỉ cần cắm đĩa mềm đó vào là có thể thay đổi hình dạng cửa sổ mới
Finder mở resource fork của file đó và giữ nó mở để lấy thông tin file trên đĩa mềm. Khi mở một cửa sổ, Finder yêu cầu Resource Manager “WDEF #0”, và Resource Manager tìm thấy nó trong file Desktop — chính xác hơn là một WDEF giả vờ là nó. Việc tạo Trojan horse trên hệ điều hành đó không khó lắm
Hiện tôi đang học thiết kế mô hình cho in 3D, và góc bo là vấn đề cần thiết cũng nhiều như thẩm mỹ. Đồ vật có góc sắc thì cầm không thoải mái, và tùy vật liệu còn có nguy cơ gây thương tích. Nó cũng không vệ sinh và khó lau sạch bụi
Ngược lại, toán học để tạo góc bo từ hình dạng tùy ý thì rối rắm, khi in thường cần support, và sau đó cần hậu xử lý để tháo support rồi dùng giấy nhám làm mịn các đường cong
Tôi tò mò vì sao Bill lại nói “Không, không có cách nào làm vậy đâu. Thực ra sẽ rất khó”. Vì sao việc áp dụng tối ưu hóa ellipse của ông ấy cho một phần tư hình tròn lại không phải chuyện nhỏ?
Có lẽ ông ấy đã nghĩ đến việc mô hình hóa hình chữ nhật bo góc bằng một công thức toán học duy nhất. https://news.ycombinator.com/item?id=15073696
Điều đó có lẽ là bất khả thi, vì hình chữ nhật bo góc không liên tục. Nhưng đó cũng là một hướng tiếp cận hoàn toàn không cần thiết, vì chỉ cần xử lý riêng các đoạn một phần tư hình tròn và các đoạn thẳng là được
Ngoài ra, câu hỏi đó xuất hiện rất đột ngột, và theo đúng nghĩa đen thì trước đó chưa ai từng làm việc ấy