Come scritto nella risposta precedente, se conosci le coordinate del centro della circonferenza e del punto, è sufficiente calcolare l'angolo formato dal raggio passante per il punto e l'asse delle ascisse.
Per calcolarlo non occorre calcolare i parametri della retta, basta calcolare la lunghezza dei lati del triangolo rettangolo generato dal raggio e l'asse delle ascisse.
Una volta noto questo angolo puoi calcolare l'angolo formato dai raggi verso i punti desiderati come angolo del punto noto +60° e -60°
Una volta noti gli angoli, puoi calcolare le coordinate dei punti semplicemente usando i sin e cos di questi.
Una possibile implementazione potrebbe essere quella che segue.
Le coordinate dei punti della circonferenza sono calcolati per un raggio ed un centro definiti
Non sapendo come scegli il punto "dato" ne ho individuato uno a caso tra quelli della circonferenza (puoi sostituire questo passaggio con la logica che hai definito per la selezione del punto.
Lo script, plotta i punto "dato", i due calcolati, i raggi e le corde individuate.
I commenti nello script dovrebbero spiegare i vari passaggi.
figure
% Definizione centro e raggio della circonferenza
c=[10 10]
r=0.3
t=0:.01:2*pi;
% Calcolo coordinate XY della cirocnferenza e plottaggio
x=c(1)+r*cos(t);
y=c(2)+r*sin(t);
plot(x,y)
grid minor
daspect([1 1 1])
% Selezione di in un punto della circonferenza
x_p=randi([1 length(x)],1,1)
% Identificazione coordinate del punto sulla circonferenza
B=[x(x_p) y(x_p)]
% Inserimento marker del punto sulla circonferenza
hold on
pdh=plot(B(1),B(2),'o','markerfacecolor','r','markeredgecolor','r')
% Plottaggio del raggio verso il punto selezionato
rdh=plot([c(1) B(1)],[c(2) B(2)],'r')
% Calcolo angolo del raggio verso il punto selezionato
angolo_punto_1=atan2d(B(2)-c(2),(B(1)-c(1)))
% Calcolo coordinate del punto desiderato
xp1=c(1)+r*cosd(angolo_punto_1+60);
yp1=c(2)+r*sind(angolo_punto_1+60);
% Plottaggio del punto desiderato
ph1=plot(xp1,yp1,'o','markerfacecolor','g','markeredgecolor','b')
% Plottaggio del raggio verso il punto desiderato
r1h=plot([c(1) xp1],[c(2) yp1],'b')
% Plottaggio della corda congiungente il punto selezionato ed il punto desiderato
c1h=plot([B(1) xp1],[B(2) yp1],'b')
% Calcolo coordinate del punto desiderato simmetrico
xp2=c(1)+r*cosd(angolo_punto_1-60);
yp2=c(2)+r*sind(angolo_punto_1-60);
% Plottaggio del punto desiderato simmetrico
p2h=plot(xp2,yp2,'o','markerfacecolor','k','markeredgecolor','k')
% Plottaggio del raggio verso il punto desiderato simmetrico
r2h=plot([c(1) xp2],[c(2) yp2],'k')
% Plottaggio della corda congiungente il punto selezionato ed il punto
% desiderato simmerico
c2h=plot([B(1) xp2],[B(2) yp2],'k')
legend([pdh rdh ph1 r1h c1h p2h r2h c2h],{'Punto dato (P0)','Raggio P0', ...
'Punto 1 (P1)','Raggio P1', ...
'Corda P0 - P1', ...
'Punto 2 (P2)','Raggio P2', ...
'Corda P0 - P2'})