সেখানে একটি পরিবর্তন এর Bresenham এর এলগরিদম দ্বারা জেমস Frith যা আরও দ্রুত হওয়া উচিত যেহেতু এটি সম্পূর্ণরূপে গুণ ঘটিয়েছে। এটি অর্জনের জন্য এটির জন্য কোনও অনুসন্ধানের টেবিলের প্রয়োজন হবে না, যদিও ব্যাসার্ধ স্থির থাকে যদি কেউ টেবিলে ফলাফল সঞ্চয় করতে পারে। যেহেতু ব্রেইনহ্যাম এবং ফ্রিথের অ্যালগরিদম উভয়ই 8-ভাঁজ প্রতিসাম্য ব্যবহার করে, তাই এই সন্ধানের টেবিলটি তুলনামূলকভাবে ছোট হবে।
// FCircle.c - Draws a circle using Frith's algorithm.
// Copyright (c) 1996 James E. Frith - All Rights Reserved.
// Email: jfrith@compumedia.com
typedef unsigned char uchar;
typedef unsigned int uint;
extern void SetPixel(uint x, uint y, uchar color);
// FCircle --------------------------------------------
// Draws a circle using Frith's Algorithm.
void FCircle(int x, int y, int radius, uchar color)
{
int balance, xoff, yoff;
xoff = 0;
yoff = radius;
balance = -radius;
do {
SetPixel(x+xoff, y+yoff, color);
SetPixel(x-xoff, y+yoff, color);
SetPixel(x-xoff, y-yoff, color);
SetPixel(x+xoff, y-yoff, color);
SetPixel(x+yoff, y+xoff, color);
SetPixel(x-yoff, y+xoff, color);
SetPixel(x-yoff, y-xoff, color);
SetPixel(x+yoff, y-xoff, color);
balance += xoff++;
if ((balance += xoff) >= 0)
balance -= --yoff * 2;
} while (xoff <= yoff);
} // FCircle //